str.index(sub, start=None, end=None)
作用:查看sub是否在字符串中,在的话返回索引,且只返回第一次匹配到的索引;若找不到则报错;可以指定统计的范围,[start,end) 左闭区间右开区间
str = "helloworldhhh" print(str.index("h")) print(str.index("hhh")) # print(str.index("test")) 直接报语法错误:ValueError: substring not found
执行结果
0 10
str.find(sub, start=None, end=None)
作用:和index()一样,只是找不到不会报错,而是返回-1
str = "helloworldhhh" print(str.find("h")) print(str.find("hhh")) print(str.find("test"))
执行结果
0 10 -1
str.count( sub, start=None, end=None)
作用:统计子字符串的数量;可以指定统计的范围,[start,end) 左闭区间右开区间
str = "hello world !!! hhh" print(str.count(" ")) print(str.count(" ", 5, 10))
执行结果
3 1
str.split(str=””, num=string.count(str))
作用:将字符串按照str分割成列表,如果参数 num 有指定值,则分隔 num+1 个子字符串
str = "hello world !!! hhh" print(str.split(" ")) print(str.split(" ", 1))
执行结果
['hello', 'world', '!!!', 'hhh'] ['hello', 'world !!! hhh']
str.strip(chars = ” “)
作用:移除字符串头尾指定的字符序列chars,默认为空格
str.lstrip(chars = ” “)
作用:移除字符串头部指定的字符序列chars,默认为空格
str.rstrip(chars = ” “)
作用:移除字符串尾部指定的字符序列chars,默认为空格
str = " hello every " print("1", str.strip(), "1") print(str.lstrip(), "1") print("1", str.rstrip()) str = "!!! cool !!!" print(str.strip("!"))
执行结果
1 hello every 1 hello every 1 1 hello every cool
str.replace(old,new,count= -1)
作用:把字符串中的 old(旧字符串) 替换成 new(新字符串),count代表最多替换多少次,默认-1代表全部替换
str = "hello world !!! hhh" print(str.replace(" ", "-")) print(str.replace(" ", "-", 1))
执行结果
hello-world-!!!-hhh hello-world !!! hhh
str.join(sequence)
作用:将序列中的元素以指定的字符连接生成一个新的字符串
lists = ["1", "2", "3"] tuples = ("1", "2", "3") print("".join(lists)) print("".join(tuples)) print("-".join(lists))
执行结果
123123 1-2-3
知识点
- “”.join(lists) 这是最常见的将列表、元组转成字符串的写法
- 列表里面只能存放字符串元素,有其他类型的元素会报错
- 元组也能传进去
str.upper()
作用:将字符串都变成大写字母
str.lower()
作用:将字符串都变成小写字母
str = "hello world !!! hhh" print(str.upper()) print(str.lower())
执行结果
HELLO WORLD !!! HHH hello world !!! hhh
str.startswith(prefix, start=None, end=None)
作用:检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False;可以指定统计的范围,[start,end) 左闭区间右开区间
str.endswith(self, suffix, start=None, end=None)
作用:相反这是结尾
str = "hello world !!! hhh" print(str.startswith("h")) print(str.startswith("hh")) print(str.endswith("h")) print(str.endswith("hhhh"))
执行结果
True False True False
str.isdigit()
作用:检查字符串是否只由数字组成
str = "123134123" print(str.isdigit())
执行结果
true
str.isalpha()
作用:检查字符串是否只由字母组成
str = "abc" print(str.isalpha())
执行结果
true
str.splitlines([keepends])
作用:将字符串按照行 (‘\r’, ‘\r\n’, \n’) 分隔
str = """ 123 456 789 """ print(str.splitlines()) with open("./file1.txt", encoding="utf-8") as f: lists = f.read().splitlines() print(lists)
执行结果
['', '123', '456', '789'] ['name: Jack ; salary: 12000', ' name :Mike ; salary: 12300', 'name: Luk ; salary: 10030', ' name :Tim ; salary: 9000', 'name: John ; salary: 12000', 'name: Lisa ; salary: 11000']
判断一个字符串是否包含某个指定的字符串
成员操作符 in
1 str = "string test string test" 2 find1 = "str" 3 find2 = "test" 4 print(find1 in str) # True 5 print(find1 not in str) # False
偷偷说一句:in不只是在字符串中可以使用哦!期待后面的教程叭
使用字符串对象的
-
find()
-
rfind()
-
index()
-
rindex()
1 str = "string test string test" 2 find1 = "str" 3 find2 = "test" 4 # find 5 print(str.find(find1)) # 0 6 print(str.find(find2)) # 7 7 8 # rfind 9 print(str.rfind(find1)) # 12 10 print(str.rfind(find2)) # 19 11 12 # index 13 print(str.index(find1)) # 0 14 print(str.index(find2)) # 7 15 16 # rindex 17 print(str.rindex(find1)) # 12 18 print(str.rindex(find2)) # 19 19 20 # count 21 print(str.count(find1)) # 2 22 print(str.count(find2)) # 2
find()和index()的区别
方法 | 区别 |
find() | 获取值时,如果要查找的值不存在,会返回-1 |
index() | 获取值的索引时,如果不存在值,会报错 |
find()和rfind()的区别
方法 | 区别 |
find() | 从字符串左边开始查询子字符串匹配到的第一个索引(从0开始) |
rfind() | 从字符串右边开始查询字符串匹配到的第一个索引(从0开始) |
index()和rindex()的区别
方法 | 区别 |
index() | 从字符串左边开始查询子字符串匹配到的第一个索引(从0开始) |
rindex() | 从字符串右边开始查询字符串匹配到的第一个索引(从0开始) |
转载请注明:XAMPP中文组官网 » Python入门教程-字符串常用函数详解