Python字符串常用内建函数
1. capitalize()
str1.capitalize() -- 将字符串str1第一个字符转换为大写,若不为字母则无效果
str1 = 'cjzh'
new_str1 = str1.capitalize()
print(new_str1) # Cjzh
2. center()
字符串.center(width,fillchar) -- 居中
字符串.ljust(width,fillchar) -- 左对齐
字符串.rjust(width,fillchar) -- 右对齐
width -- 正整数,表示新的字符串的宽度
fillchar -- 字符,填充字符串
str2 = '123'
new_str2 = str2.center(7, '$')
print(new_str2) # 新字符串7个长度,123居中,其余用$填充 $$123$$
new_str2 = str2.ljust(7, '$')
print(new_str2) # 新字符串7个长度,123左对齐,其余用$填充 123$$$$
new_str2 = str2.rjust(7, '$')
print(new_str2) # 新字符串7个长度,123右对齐,其余用$填充 $$$$123
3. count(str)
str1.count(str2) -- 返回str2在str1中出现的次数
str3 = 'cj1cj2cj3cj4cj5'
n = str3.count('cj')
print(n) # 5
4. bytes.decode(encoding="utf-8", errors="strict")
5. encode(encoding='UTF-8',errors='strict')
6. endswith()
str1.endswith(char1) -- 检查str1是否以char1结尾,返回值为布尔
str6 = 'cj1cj2cj3'
bool1 = str6.endswith('3')
print(bool1) #True
7. expandtaps(tabsize=8) -- 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8
8. find(str,beg=0,end=len(string))
str1.find(str2,0,len(str1)) -- 在指定下标范围0~len(str1)内,检查str2是否包含其中,如果包含则返回首个str2(此处为左起第一个类比rfind())开始的下标,否则返回-1
str8 = '0cj1cj2cj'
n1 = str8.find('cj', 0, 9)
n2 = str8.find('3', 0, 9)
print(n1) # 1
print(n2) # -1
9. index(str,beg=0,end=len(string))
str1.index(str2,0,len(str1)) -- 在指定下标范围0~len(str1)内,检查str2是否包含其中,如果包含则返回首个str2开始的下标,否则报一个异常:ValueError: substring not found。
str9 = '1cj2cj'
n = str9.index('2') #不写范围则默认整个字符串
print(n) # 3 如果报异常则以下代码会出错
10. isalnum()
str1.isalnum() -- 判断str1是否所有字符都是字母或数字,是则返回True,否则返回False。
str10 = '1cj2cj'
bool2 = str10.isalnum()
print(bool2) #True
11. isalpha()
str1.isalpha() -- 如果str1至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
str11 = 'abcdd'
print(str11.isalpha()) #True
12. isdigit()
str1.isdigit() -- 如果str1只包含数字则返回 True 否则返回 False.
print('16217cj1421621'.isdigit()) #False
13. islower()
str1.islower() -- 如果str1中包含至少一个区分大小写的字符(拉丁文也区分大小写),并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
print('cj12837138zh'.islower()) #True
14. isnumeric()
str1.isnumeric() -- 如果字符串中只包含数字字符,则返回 True,否则返回 False(中文数字也可以)
str14 = '1一Ⅰ壹幺'
print(str14.isnumeric()) #True
15. isspace()
str1.isspace() -- 如果str1中只包含空白,则返回 True,否则返回 False.用于判断str1是否为空。
str15 = ' '
print(str15.isspace()) #True 空指的是空格,不是None''
16. istitle()
str1.istitle() -- 如果str1是标题化的(见 title())则返回 True,否则返回
False
str16 = 'Cj Zh Qf '
print(str16.istitle()) # True
17. isupper() 类比 islower()相反
str1.isupper() -- 如果str1中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
str17 = 'AJKIHdkdj12124'
print(str17.isupper()) # False
18. join(seq) 类比 sep =
str1.join(str2) -- 以str1作为分隔符,分隔str2每一个字符,将str2中所有的元素(的字符串表示)合并为一个新的字符串。
str18 = '¥'
new_str18 = str18.join('money')
print(new_str18) # m¥o¥n¥e¥y
19. len(str)
len(str1) -- 返回str1的长度
str19 = '0123456'
print(len(str19)) # 7
20. ljust(width, fillchar)
返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。见2
21. lower()
str1.lower() -- 转换str1中所有大写字符为小写。
str21 = 'aAbBcCjJ'
print(str21.lower()) # aabbccjj
22. lstrip()
str1.lstrip(char) -- 截掉str1左边的空格或指定字符。默认为空格
str22 = ' cjcjcjcjcj'
new_str22 = '#*#jcjcjcjcj'
print(str22.lstrip()) #'cjcjcjcjcj'
print(new_str22.lstrip('#')) #'*#jcjcjcjcj'
23. maketrans() ??????????
str1.maketrans() -- 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
24. max(str)
max(str1) -- 返回str1中编码值最大的字母
str24 = 'aAbBcCjJ'
print(max(str24)) # j
25. min(str)
min(str1) -- 返回str1中编码值最小的字母
str25 = 'aAbBcCjJ2234'
print(min(str25)) # 2
26. replace(old,new,max)
str3.replace(str1,str2,max]) -- 把str3中的str1替换成str2,如果max 指定,则替换不超过 max 次。
str26 = 'aaaaaabbbbbbcccccc12344'
new_str26 = str26.replace('a', '$', 3)
print(new_str26) # '$$$aaabbbbbbcccccc12344'
27. rfind(str,beg=0,end=len(string))
str1.rfind(str2,0,len(string)) -- 从右边开始检测 str2是否包含在str1中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值(正),否则返回-1
str27 = '1cj2cj3cj4zh'
print(str27.rfind('c')) # 7 即右起第一个c的位置!!
print(str27.rfind('jc')) # -1 没有‘jc’
28 rindex(str,beg=0,end=len(string))
str1.rindex(str2,0,len(str1)) -- 从右边开始检测 str2是否包含在str1中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值(正),否则返回-1。即:右起第一个str2的开始正下标
str28 = 'abababcjcjcjzhzhzh'
print(str28.rindex('cj')) # 10 右起第1个‘cj’的开始下标
29. rjust(width,fillchar)
具体使用见 2
30. rstrip()
str1.rstrip(char1) -- 删除str1末尾的指定字符char1,直到不为char1为止,默认char1为空格。
str30 = '1234asdfcj '
new_str30 = '1234asdfcj#*##'
print(str30.rstrip()) # 1234asdfcj
print(new_str30.rstrip('#')) # 1234asdfcj#*
31. split()
str1.split(str2,num) -- 用char1为分隔符截取str1为一个列表,num表示截取次数默认为char1在str1中出现的次数 即num(默认)=str1.count(str2)。
str31 = 'abc##def##ghi##334##678'
print(str31.split('##', 2)) #截取两次 ['abc','def','ghi##334##678']
32. splitlines([keepends])
str1.splitlines(bool) -- 将字符串str1按照行('\r', '\r\n', \n')分隔,返回
一个包含各行作为元素的列表,如果bool为 False,不包含换行符,如果为 True,则保留换行符。
str32 = '123\n456\r888\n'
print(str32.splitlines(True)) # ['123\n','456\r','888\n']
33. startswith(str,beg=0,end=len(string))
str1.startswith(str2,0,len(str1)) -- 检查str1是否是以str2开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
str33 = '123321'
print(str33.startswith('12')) # True
34. strip(char)
str1.strip(char1) -- 删除str1左边lstrip()和右边rstrip的字符char1
str34 = '$$123456$$'
print(str34.strip('$')) # 123456
35. swapcase()
str1.swapcase() -- 将str1中大写转换为小写,小写转换为大写
str35 = 'aAbBcCjJ'
print(str35.swapcase()) # AaBbCcJj
36. title()
str1.title() -- 返回"标题化"的str1,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
str36 = 'student is teacher' #注意单词之间要用空格隔开
print(str36.title()) # Student Is Teacher
37. translate(table, deletechars="") ???????????????
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
38. upper()
str1.upper() -- 转换str1中的小写字母为大写
str38 = 'AaBbCcJj'
print(str38.upper()) # AABBCCJJ
39. zfill(width)
str1.zfill(n) -- 将str1返回为长度n的新字符串,以原字符串右对齐,前面填充0。
str39 = '123cjcjcj'
print(str39.zfill(12)) # 000123cjcjcj
print(str39) # 123cjcjcj
40. isdecimal()
str1.isdecima() -- 检查str1是否只包含十进制字符,如果是返回 true,否则返回 false。
str40 = '3123443'
print(str40.isdecimal()) # True
网友评论