Python str方法总结
Posted cyx-12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python str方法总结相关的知识,希望对你有一定的参考价值。
1. str.capitalize()
#capitalize 使字符串首字母大写 test = ‘afaASN‘ v1 = test.capitalize() print(v1)
Afaasn
2. str.casefold()
test = ‘afaASN‘ v1 = test.casefold() print(v1) # casefold 将字符串全部转为小写 # casefold 也可以将非英文转为小写 # lower 只支持英文字母转为小写
afaasn
3. str.center()
# 按照给定字符和总宽度居中显示 # 如下共输出15个字符 # t共占8个字符 # 其余7个字符位用e进行填充 t = ‘cYxFbFbB‘ v = t.center(15,‘e‘) print(v)
eeeecYxFbFbBeee
4. str.count()
# str.count(sub, start, end) # 子字符串在原字符串中的个数。 # sub -- 需要搜索的子字符串 # start -- 字符串开始搜索的位置,不填默认0 # end -- 字符串结束搜索的位置,不填为最后 t = ‘cYxFbFbB‘ v = t.count(‘b‘,5,7) print(v)
1
5. str.encode()
# str.encode # encoding="utf-8", errors="strict" # encoding -- 编码方式,errors -- 错误的处理方案。 # 默认为 ‘strict‘,是编码错误引起一个UnicodeError。 # 其他可能得值有 ‘ignore‘--‘ ’, ‘replace‘--‘?’, ‘xmlcharrefreplace‘-- 可扩展标记语言替换, # ‘backslashreplace‘--反斜杠替代 以及codecs.register_error() 注册的所有值。 s = "aaa" v = s.encode(‘ascii‘) print(v)
b‘aaa‘
6. str.endswith()
# (suffix, start, end) # suffix -- 子字符串 # start -- 长字符串中的开始位置,默认0 # end -- 长字符中结束位置,默认最后 a = ‘d,cf,gtr,bnfg‘ v1 = a.endswith("g", ) print(‘v1: ‘, v1) v2 = a.endswith(‘fg‘) print(‘v2: ‘, v2) v3 = a.startswith(‘d‘) print(‘v3: ‘, v3) v4 = a.startswith(‘c‘) print(‘v4: ‘, v4) v5 = a.endswith(‘,‘, 2, 9) print(‘v5: ‘, v5)
v1: True
v2: True
v3: True
v4: False
v5: True
7. str.expandtabs()
# (tabsize=8) # 把Tab--‘ ’变为其他长度的空格符,‘ ‘默认为8 a = ‘j j j g g g ‘ v = a.expandtabs(9) print(v)
j j j
g g g
8. str.find()
# (self, sub, start=None, end=None) # 检测字符串中是否包含子字符串sub,start(开始)到end(结束) # 如果包含子字符串,则返回开始的(最小的)索引值,否则返回-1。 # 默认为0和最后 a = ‘jfunsjfbbvdf‘ v = a.find(‘fb‘,3,-1) print(v) v1 = a.find(‘fv‘) print(v1) #输出为 -1 表示没有找到
6 -1
9.str.rfind()
a = ‘jfunsjfbbvdf‘ v2 = a.rfind(‘f‘) print(v1) # 输出最大索引
11
与find用法类似
9. str.format()
a = "你是{0}么?你是{1}么?" v = a.format(‘狗子‘,‘屎蛋‘) print(v)
你是狗子么?你是狗蛋么?
format 的另一种用法
l = [‘狗子‘,‘屎蛋‘] li = [‘a‘,‘b‘] a = ‘你不是{0[0]},就是{1[1]}‘.format(l,li) print(a)
你不是狗子,就是b
format 填充
a = ‘{0:%<10}‘.format(‘二货‘) print(a) a1 = ‘{0:&>10}‘.format(‘二货‘) print(a1) a2 = ‘{0:@^10}‘.format(‘二货‘) print(a2)
二货%%%%%%%%
&&&&&&&&二货
@@@@二货@@@@
format 精度与进制
# 保留几位小数 a = ‘{0:.3f}‘.format(1/3) print(a) a1 = ‘{0:.1f}‘.format(1/3) print(a1)
0.333 0.3
# 转换为二进制 a2 = ‘{0:b}‘.format(8) print(a2) # 转换为八进制 a3 = ‘{0:o}‘.format(8) print(a3)
1000 10
# 千分位格式化 a = ‘{:,}‘.format(111111111111) print(a)
111,111,111,111
10. str.format_map()
# 与str.format(**mapping)类似 # 区别在于format_map直接用字典,而不是复制一个 # 下面是官方例子,其中Default是dict的一个子类。 class Default(dict): def __missing__(self, key): return key print("{name} was born in {country}".format_map(Default(name="Guide")))
Guide was born in country
11. str.index()
# str, beg=0, end=len(string) # 与str.find类似 # 区别在于,index如果找不到要寻到的字符,会得到ValueError # 而find则返回-1。 print("djfdnvjdfdvhb".find("i")) print("sffdvbv".index("i"))
Traceback (most recent call last): -1 File "C:/Users/123/PycharmProjects/py2018/test", line 6, in <module> print("sffdvbv".index("i")) ValueError: substring not found
12. str.rindex()
# str, beg=0, end=len(string) # 用法与str.rindex一致 # 这个得到的是结束的(最大的)索引值。 print("jfbvjdsvbskj".rindex("j"))
11
13. str.isalum()
# 如果字符串至少有一个字符,并且所有字符都是字母或数字则返回 True,否则返回 False print(‘vbvhfb3453456‘.isalnum()) print(‘[email protected]#$124‘.isalnum())
True
False
14. str.isalpha()
# 如果字符串至少有一个字符,并且所有字符都是字母或汉字则返回 True,否则返回 False。 print(‘gnvj陈‘.isalpha()) print(‘bfv!陈‘.isalpha())
True
False
15. str .isdecimal() str.isdigit() str.isnumeric()
# 3个都是判断字符串是不是数字字符 # str.isdecimal() 表面上就是: str 是阿拉伯数字123456这样的为True,汉字数字,罗马数字为False # str.isdigit() 除了汉字数字为False,其他数字都为True,包括单字节数字b" "。 # str.isnumeric() 除了单字节数字b" "是Error,所有的数字都为True。 print(‘1234‘.isdecimal()) print(‘二②‘.isdecimal()) print(‘二②‘.isdigit()) print(‘②2‘.isdigit()) print(‘c2!‘.isnumeric()) print(‘3二②‘.isnumeric())
True
False
False
True
False
True
16. str.isidentifier()
# 检测字符串是否是字母开头。 print(‘hh12‘.isidentifier()) print(‘!23fd‘.isidentifier()) print(‘12cfg‘.isidentifier())
True
False
False
17. str.islower()
#如果字符串中的所有字符都是小写,并且至少有一个字符,则返回True,否则返回False。 print(‘bh‘.islower()) print(‘Hh‘.islower())
True
False
18. str.isprintable()
#判断是不是都为可见/可打印字符 print(‘oo oo oo‘.isprintable()) print(‘oo oo‘.isprintable())
False
True
19. str.isspace()
#判断是否为空格字符(注意不是空) print(‘ ‘.isspace()) print(‘h h‘.isspace())
True
False
20. str.istitle()
#字面上意思是:判断字符串能不能做标题 # 判断每个单词首字母是否大写 print(‘He He‘.istitle()) print(‘HE HE‘.istitle()) print(‘He he‘.istitle())
True
False
False
21. str.title()
#把字符串变为标题格式。 print(‘he he he ‘.title())
He He He
22. str.isupper()
#与str.islower()对应 # 如果字符串中的所有字符都是大写,并且至少有一个字符,则返回True,否则返回False。 print(‘HHHH‘.isupper()) print(‘Hhh‘.isupper())
True
False
23. str.join()
#以str作为分隔符 # 将string所有的元素合并成一个新的字符串 # 若string为空,则TypeError print(‘123‘.join([‘a‘,‘b‘,‘c‘,‘d‘])) print(‘123‘.join(‘asdf‘))
a123b123c123d
a123s123d123f
24. str.ljust(width, fillchar)
#得到一个原始字符串左对齐 # 并使用fiichar填充至指定长度的新字符串 # 若指定的长度小于原字符串的长度则返回原始字符串 # 与format的填充用法相似。 # width--指定长度 # fillchar--填充字符串,默认空格字符。 print(‘asd‘.ljust(10,"!")) print(‘asd‘.ljust(2,‘@‘)) print(‘asd‘.ljust(10))
asd!!!!!!!
asd
asd
25. str.rjust(width, fillchar)
#得到一个原始字符串右对齐 # 并使用fiichar填充至指定长度的新字符串 # 若指定的长度小于原字符串的长度则返回原始字符串 # 与format的填充用法相似。(用法与ljust一致)
26. str.lower()
# 把所有字母转化为小写 # 与str.upper()相对 # 与str.casefold()区别
27. str.upper()
# 把所有字母转化为大写
28. str.lstrip(chars)
# 删除str左边所有出现在chars子字符串 # chars为空时默认空格字符 print(‘ who are you ‘.lstrip()) print(‘who are you ‘.lstrip(‘ghw‘)) print(‘who are you ‘.lstrip(‘Whz‘))
who are you
o are you
who are you
29. str.rstrip(chars)
# 与str.lstrip(chars)对应且方法一致 # 删除str右边所有出现在chars子字符串 # chars为空时默认空格字符。
30. str.strip(chars)
# 与str.lstrip(chars)和str.rstrip(chars)用法一致 # 这个是删除两边所有出现在chars子字符串 # chars为空时默认空格字符。
31. str.maketrans(intab, outtab) str.translate()
# 得到一个用于str.translate()的映射,其实就是一个字典。 # intab--是原始字符 # outtab--翻译后的字符,长度与intab相等 intab = ‘abcde‘ outtab = ‘12345‘ name = ‘asdfjhjcdjkle‘ # str.maketrans得到的字典翻译str x = ‘‘.maketrans(intab, outtab) # x就是maketrans得到的字典 # 字典中的映射是字符对应的Unicode编码 print(x) print(name.translate(x))
{97: 49, 98: 50, 99: 51, 100: 52, 101: 53}
1s4fjhj34jkl5
32. str.partition(char) str.split(char, count)
# 作用都是字符串分割 # str.partition(char)根据字符串char分割str # 得到一个3元素元组(只识别第一次出现的字符串)。 # char不能为空 print(‘www.baidu.com‘.partition(‘.‘))
(‘www‘, ‘.‘, ‘baidu.com‘)
# str.split(char,count) 根据字符串char分割str # 得到一个列表(识别所有的char,并且char不包含在列表内) # char默认为空格符。 # char--子字符串 # count--切割次数,默认全部。 print(‘www.baidu.com.cn‘.split(‘.‘,3))
[‘www‘, ‘baidu‘, ‘com‘, ‘cn‘]
33. str.rpartition(char)
# 用法与str.partition(char)一致 # str.rpartition(char)根据字符串char分割 # str得到一个3元素元组(只识别最后一次出现的字符串) # char不能为空
34. str.rsplit(char, count)
#与str.split用法一致 # 但是str.rsplit是从后往前工作 # str.split是签到后工作 print(‘aswwsdjnvwwnh‘.rsplit(‘ww‘,1)) print(‘aswwsdjnvwwnh‘.split(‘ww‘,1))
[‘aswwsdjnv‘, ‘nh‘] [‘as‘, ‘sdjnvwwnh‘]
35. str.splitlines(keepends)
# 按照行(‘ ‘, ‘ ‘, ‘)分隔,得到各行元素的列表 # 如果keepends为 False,不包含换行符 # 如果为 True,则保留换行符 # 默认为False print(‘as as as as as‘.splitlines()) print(‘as as as as as‘.splitlines(False)) print(‘as as as as as‘.splitlines(True))
[‘as‘, ‘as as‘, ‘as‘, ‘as‘] [‘as‘, ‘as as‘, ‘as‘, ‘as‘] [‘as ‘, ‘as as ‘, ‘as ‘, ‘as‘]
36. str.replace(old, new, count)
把字符串中的 old(旧字符串) 替换成 new(新字符串) # 替换不超过count 次,count为空时不限次数。 print(‘asdfghasdf‘.replace(‘as‘,‘12‘,1))
12dfghasdf
37. str.startswitch(start, end)
# startswith() 方法用于检查字符串是否是以指定字符串开头 # 如果是则返回True,否则返回False # start,end未指定范围,默认0,len(str)-1 print(‘asdfg‘.startswith(‘as‘)) print(‘asdfg‘.startswith(‘as‘,1,4))
True
False
38. str.swapcase
# 大写变小写,小写变大写 print(‘asdfASDFaAsSASas‘.swapcase())
ASDFasdfAaSsasAS
以上是关于Python str方法总结的主要内容,如果未能解决你的问题,请参考以下文章