【Python中字符串str的函数超详细解释大全】
写笔记也是一件苦逼事。
str是在使用Python中,最常用的操作对象,熟练掌握str的各种操作函数和对象,对理解Python程序,提升编程技巧等具有莫大的好处。
首先强调一下,字符串对象是不可改变的,类似的类型如元组,也是在创立后就不可改变的。也就是说在python创建一个字符串后,你不能把这个字符中的某一部分改变。任何的函数改变了字符串后,都会返回一个新的字符串,原字符串在内存中并没有变。
下面的例子在Python3.6及pycharm中通过:
1 |
s1='this is the first Python program' |
1、str.capitalize()
#返回一个首字母大写(如果首个是字母的话),其它字母变成小写的字符串
1 |
print(s1.capitalize() ) |
1 |
>>>This is the first python program |
2、str.center(width[, fillchar])
#返回一个中间对齐的字符串。参数width是指总宽度;参数fillchar是用来填充的字符(是单个字符,不是字符串),这个参数可选,如果忽略的话则用空格填充;如果宽度小于原字符串长度,则fillchar参数不起作用,如果width在于原字符长度,则用fillchar填充。
1 |
print(s1.center(40,'0') ) |
1 |
>>>0000this is the first Python program0000 |
3、str.count(sub[, start[, end]])
#返回字符中出现子字符串(参数:sub)的个数,参数start和end可选。参数start为从哪个位置开始,参数end表示计算结束的位置,如果大于字符串长度,则也计算到字符串最后一个字符为止。
1 |
print(s1.count('is',5,100)) |
1 |
>>>1 |
4、str.encode(encoding=”utf-8”, errors=”strict”)
#返加一个用参数encoding编码的字符串,默认编码为“utf-8”,其他如gb2312 gbk gb18030 bz2 zlib big5 bzse64等。如果出错,则可以根据参数errors提供不同的错误处理方案。
1 |
print(s1.encode() ) |
1 |
>>> b'this is the first Python program' |
5、str.endswith(suffix[, start[,end]])
#如果字符串以指定的后缀suffix(后缀可以是元组)结束,返回 True,否则返回 False。后缀可以后缀寻找的元组。startt和end分别指测试开始和结束的位置。
1 |
print(s1.endswith('ram')) |
>>>True
6、str.expandtabs(tabsize=8)
#把字符串中的 tab 符号(‘ ‘)转为空格,tab 符号(‘ ‘)默认的空格数是 8,返回字符串中的 tab 符号(‘ ‘)转为空格后生成的新字符串。
1 |
print('01 012 0123'.expandtabs()) |
>>> 01 012 0123
7、str.find(sub[, start[, end]])
#返回最先在字符串中找到子字符串(参数sub)的位置,如果没有找到则返回-1,可选参数start和end分别是限定查找于开始和结束的位置。
1 |
print(s1.find('is')) |
1 |
>>>2 |
1 |
8、str.format(* args,* * kwargs) |
1 |
#返回一个根据格式化表达式格式化后的字符串,在本人前期文章《Python中字符串格式化函数format的使用》中有着详细的说明。 |
9、str.index(sub[, start[, end]])
#与find()类似,只是如果没有找到子字符串,则返加一个错误。
print(s1.index(’tis’))
>>>ValueError: substring not found
10、str.isalnum()
#检测字符串是否全由字母和数字组成。
1 |
print(s1.isalnum() )>>>False |
1 |
print('abcdef'.isalnum() ) |
>>>True
11、str.isalpha()
#是否全是字母,并至少有一个字符
1 |
print(s1.isalpha() ) |
1 |
>>>Falseprint(''.isalnum() ) |
>>>False
12、str.isdecimal()
#检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
注意:定义一个十进制字符串,只需要在字符串前添加 ‘u’ 前缀即可。
1 |
print(u't289'.isdecimal() ) |
1 |
>>>Falseprint(u'3456'.isdecimal() ) |
1 |
>>>True |
13、str.isdigit()
#检测字符串是否只由数字组成
1 |
print('289'.isdigit() ) |
1 |
>>>True |
1 |
print('3456 34'.isdigit() ) |
1 |
>>>False |
14、str.isidentifier()
#根据Python语法的定义,判断字符串是否是一个合法的可作为变量的标识符
1 |
print('2sd'.isidentifier() ) |
1 |
>>>Falseprint('_3456 34'.isidentifier() ) |
1 |
>>>Falseprint('中456'.isidentifier() ) |
1 |
>>>Trueprint('ss456'.isidentifier() ) |
>>>True
15、str.islower()
#检测字符中的字母(不包括其他字符)是否全是小写
1 |
print('2sd th!'.islower()) |
>>>True
16、str.isnumeric()
#测字符串是否只由数字组成。这种方法是只针对unicode对象。
注:定义一个字符串为Unicode,只需要在字符串前添加 ‘u’ 前缀即可
1 |
print('243'.isnumeric()) |
>>>True
17、str.isprintable()
#判断字符串的所有字符都是可打印字符或字符串为空。Unicode 字符集中 “Other” “Separator” 类别的字符为不可打印的字符(但不包括 ASCII 的空格(0x20))。
在ASCII码中,第0~32号及第127号是控制字符;第33~126号是可打印字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余的是一些标点符号、运算符号等
1 |
print('x267wi'.isprintable() ) |
>>>False
18、str.isspace()
#字符串中只包含空格,则返回 True,否则返回 False.
1 |
print(s1.isspace() ) |
1 |
>>>Falseprint(' '.isspace() ) |
1 |
>>>True |
1 |
19、str.istitle() |
1 |
#检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False. |
1 |
print(s1.istitle()) |
1 |
>>>Falseprint('This Is A Apple'.istitle()) |
1 |
>>>True |
1 |
20、str.isupper()#检测字符串中所有的字母是否都为大写。如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 Falseprint(s1.isupper())>>>Falseprint('THIS IS A'.isupper())>>>True21、str.join(iterable)#用于将序列中的元素以指定的字符连接生成一个新的字符串。参数:iterable为要连接的元素系列。注意:元素必须为字符串类型,不为能数字或其它。print('ww-'.join(['1','2','4']))>>>1ww-2ww-4print('ww-'.join(('aa','22','cc')))>>>aaww-bbww-cc22、str.ljust((width[, fillchar]))#返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。print('ww-'.ljust(15,'0'))>>> ww-00000000000023、str.lower()#返回一个小写的字符串print('My Name Is'.lower() )>>> my name is24、str.lstrip([chars])#返回一个去掉左边空格或指定字符串(参数:chars)的字符串print(' My Name Is'.lstrip())输出:My Name Isprint('My Name Is'.lstrip('My'))输出:Name Is25、str.maketrans(x[, y[, z]])#返加一个翻释表,用于函数str.translate(table) 如果只有一个参数x,它必须是一个字典,关键字必须为长度为1的Unicode字符或整数,值字符串可为任意长度或空。字符键将被转换为顺序。 如果有两个参数,它们必须是长度相同的字符串,字符串x中的每一个字符将映射到在同一位置字符串y的字符。例子可看str.translate(table)26、str.partition(sep) # 用指定的分隔字符串(参数sep)来分隔原字符串,返回一个包含三个元素的元组。 如是指定的分隔字符串(参数sep)在原字符串中存在,则返中的元组中前后两个元素分别为被分隔开的原字符串(不包括分隔字符串),中间元素为分隔字符中。print('http:\www.13give.com'.partition('ww') )输出:('http:\', 'ww', 'w.13give.com')如果指定的分隔字符中在原字符串中不存在,则返加的元组中第一个元素为原字符串,第二、三个元素为空。print('http:\www.13give.com'.partition('wwww') )输出:('http:\www.13give.com', '', '')27、str.replace(old, new[, count])#返回一个经替换过的字符串,参数old为要被替换的原字符串中的字符串,参数new为被替换成的字符串,可选参数count为替换次数,没有指定的话,则全部替换。print('http:\www.13give.com'.replace('.','==',1) )输出:http:www==13give.com28、str.rfind(sub[, start[, end]])#返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。参数sub为要查找的字符串,参数start为开始查找的位置,默认为 0,参数end为结束查找的位置,默认为字符串的长度。print('http:\www.13give.com'.rfind('.'))输出:1629、str.rindex(sub[, start[, end]])#同rfind,只是没有查找到则产生一个错误()。30、str.rjust(width[, fillchar])#返加一个宽度为width,右对齐的字符串,可选参数fillchar为填充字符。print('this is aapple'.rjust(25,'0'))输出:0000000000this is a apple 31、str.rpartition() #同str.partition(sep)相似,只是如果原字符串中没有包括分隔字符串是,返加的元组中第一、二为空,第三个元素为原字符串。 print('http:\www.13give.com'.rpartition('wwww') ) 输出:('', '', 'http:\www.13give.com')32、str.rsplit(sep=None, maxsplit=-1)#从右边开如分离字符串,返加一个不包括分离符(参数sep)的字符串列表,默认返回分离后的全部元素。如果指定maxsplit,指分隔的列表上标数字。print('http:\www.13give.com'.rsplit('.'))输出:['http:\www', '13give', 'com']print('http:\www.13give.com'.rsplit('.',1))输出:['http:\www.13give', 'com']33、str.rstrip(([chars])#返回一个去除右边空格的新字符串,可选参数(chars)是一个字符数组,如果存在,则原字符串从右边开始,一个个字符去匹配参数(chars)字符数组的中元素,直到没有匹配为止print('sssasy nosayweee'.rstrip('mewy'))输出:sssasy nosa34、str.split(sep=None, maxsplit=-1)#返回一个用参数sep分离的字符串数组,参数sep表示用来分离的字符串,默认为空格,不出现在最后分离出来的字符串数组中,参数maxsplit默认为-1,表示全部分离,如果为一个其它整数,表示分隔的列表上标数字。连续出现的分隔符将被视为一个空字符串,随着结果一起返回到字符串列表中。print('wsssasy nosayweee'.split('s'))输出:['w', '', '', 'a', 'yno', 'ayweee']35、str.splitlines([keepends])#返回一个根据换行符来分隔的列表,可选参数(keepends)表示换行符是否也一起返回。可能的换行符包括:、、 、 、 、 、 、 、 、 、
、
、
print('ab cde fgkl'.splitlines())输出:['ab c', '', 'de fg', 'kl']print('abcde fgkl'.splitlines(keepends=True))输出:['ab c', '', 'de fg', 'kl']36、str.startswith(prefix[, start[, end]])#测试原字符串开头是否包括参数(prefix),可选参数指定开始和结束的位置。 print('mynameis'.startswith('na',2,7) )输出:True37、str.strip(([chars])#默认返回去除字符串中左右两端的空格,可选参数(chars)是一个字符列表,表示左右两端的字符分别匹配列表元素,直到不匹配为止。print(' mynameis '.strip() )输出:mynameisprint('wwamynameisasww'.strip('wwa') )输出:mynameisas38、str.swapcase()#对大小写进行转换,大写转小写,小写转大写print('wwamyNameisAsww'.swapcase() )输出:WWAMYnAMEISaSWW39、str.title()#返回一个每个单词首字母都大写的字符串 print('ww my Name isAsww'.title() )输出:Ww My Name Is Asww40、str.translate(table)#返回一个经翻释的新字符串,参数table为经函数str.maketrans()得出的翻释表。sold = 'abcde'snew = '12345'table = str.maketrans(sold,snew)print('give me aapple'.translate(table))输出:giv5 m5 1 1ppl541、str.upper()#返回一个全是大写字母的字符串 print('ww my Name is Asww'.upper())输出:WW MY NAME IS ASWW42、str.zfill(width)#返回一个用“0”去填充,总宽度为参数:width为字符串,如果原字符串的开头是“+”或“一”的话,则“+”或“-”仍放在前面。 print('+ww my Name'.zfill(25))输出:+00000000000000ww my Nameprint('-ww my Name'.zfill(25))输出:-00000000000000ww my Nameprint('ww my Name'.zfill(25))输出:000000000000000ww my Name |
转载请注明:徐自远的乱七八糟小站 » 【Python中字符串str的函数超详细解释大全】