字符串内置函数

一.字符串
1.内置函数

str.capitalize() 将字符串的第一个字母变成大写,其他字母变小写,该方法返回一个首字母大写的字符串
str.center(width[, fillchar]) width – 字符串的总宽度,fillchar – 填充字符,返回一个指定的宽度 width 居中的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充
str.count(sub, start= 0,end=len(string)) sub – 搜索的子字符串,start – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0,end – 字符串中结束搜索的位置,默认为字符串的最后一个位置,返回子字符串在字符串中出现的次数
str.encode(encoding=‘UTF-8’,errors=‘strict’) encoding – 要使用的编码,如: UTF-8,errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值,该方法返回编码后的字符串,它是一个 bytes 对象
bytes.decode(encoding=“utf-8”, errors=“strict”) encoding – 要使用的编码,如"UTF-8",errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值,该方法返回解码后的字符串
str.endswith(suffix[, start[, end]]) suffix – 该参数可以是一个字符串或者是一个元素,start – 字符串中的开始位置,end – 字符中结束位置,如果字符串含有指定的后缀返回 True,否则返回 False
>>> a='asdF'
>>> a.capitalize()
'Asdf'
>>> a='1asdFG'
>>> a.capitalize()
'1asdfg'#首字符如果是非字母,首字母不会转换成大写,会转换成小写
>>> a='www.wade.com'
>>> a.center(20,'!')
'!!!!www.wade.com!!!!'#第二个参数默认是空格,若填充则为一个字符的字符串
>>> a.center(4,'1')
'www.wade.com'#宽度不够时返回字符串
>>> a.count('w')
4
>>> a.count('w',1,2)
1
>>> a.count('w',0,4)
3
>>> a.count('m',0,len(a))
1
>>> a.count('a',0,5)#后两个参数不填则默认整个字符串计算,第二个参数》=len(),则计算到最后一个子字符(包含),第二个参数>> a.count('wa')
1
>>> a.count('aw')#子字符未出现计数0
0
>>> a.encode('UTF-8','strict')
b'www.wade.com'
>>> a='菜鸟教程'
>>> a.encode('UTF-8','strict')
b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b'
>>> a.encode('UTF-8','strict').decode('UTF-8','strict')
'菜鸟教程'#先编码再解码
>>> a='012345'
>>> a.endswith('h')
False
>>> a.endswith('5')
True
>>> a.endswith('5',0,5)
False
>>> a.endswith('5',0,6)
True
>>> a.endswith('5',1,5)
False
>>> a.endswith('5',1,6)
True
>>> a.endswith('345',0,6)
True
str.expandtabs(tabsize=8) tabsize – 指定转换字符串中的 tab 符号(’\t’)转为空格的字符数,把字符串中的 tab 符号(’\t’)转为空格,tab 符号(’\t’)默认的空格数是 8
str.find(str, beg=0, end=len(string)) str – 指定检索的字符串,beg – 开始索引,默认为0,end – 结束索引,默认为字符串的长度,如果包含子字符串返回开始的索引值,否则返回-1
str.index(str, beg=0, end=len(string)) str – 指定检索的字符串,beg – 开始索引,默认为0,end – 结束索引,默认为字符串的长度,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常
str.join(sequence) sequence – 要连接的元素序列,返回通过指定字符连接序列中元素后生成的新字符串
len( s ) s – 对象,返回对象长度
str.lower() lower() 方法转换字符串中所有大写字符为小写
str.upper() upper() 方法将字符串中的小写字母转为大写字母
str.title() title() 方法返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写
>>> a='asdfa'
>>> a.find('a')# 从下标0开始,查找在字符串里第一个出现的子串
0
>>> a.find('a',1)# 从下标1开始,查找在字符串里第一个出现的子串
4
>>> a.find('a',8)
-1
>>> a.find('1')# 查找不到返回-1
-1
>>> a.index('a')
0
>>> a.index('a',1)
4
>>> a.index('a',8)
Traceback (most recent call last):
  File "", line 1, in 
    a.index('a',8)
ValueError: substring not found
>>> a=''
>>> b='-'
>>> a.join(['w','a','d','e'])
'wade'
>>> b.join(['w','a','d','e'])	   
'w-a-d-e'
>>> a='I  am  xIaOLIAngpEnG!'	   
>>> a.lower()	   
'i  am  xiaoliangpeng!'
>>> a.upper()	   
'I  AM  XIAOLIANGPENG!'
>>> a.title()	   
'I  Am  Xiaoliangpeng!'
str.isalnum() 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
str.isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
str.isdigit() 如果字符串只包含数字则返回 True 否则返回 False
str.isnumeric() isnumeric() 方法检测字符串是否只由数字组成。这种方法是只针对unicode对象,如果字符串中只包含数字字符,则返回 True,否则返回 False
str.islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
str.isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
str.istitle() 如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False
str.isspace() 如果字符串中只包含空格,则返回 True,否则返回 False
str.isdecimal() isdecimal() 方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象,如果字符串是否只包含十进制字符返回True,否则返回False
str.lstrip([chars]) chars --指定截取的字符,返回截掉字符串左边的空格或指定字符后生成的新字符串
str.maketrans(intab, outtab) intab – 字符串中要替代的字符组成的字符串,outtab – 相应的映射字符的字符串,maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标,两个字符串的长度必须相同,为一一对应的关系
str.translate(table),bytes.translate(table[, delete]),bytearray.translate(table[, delete]) table – 翻译表,翻译表是通过 maketrans() 方法转换而来,deletechars – 字符串中要过滤的字符列表,返回翻译后的字符串,若给出了 delete 参数,则将原来的bytes中的属于delete的字符删除,剩下的字符要按照table中给出的映射来进行映射
str.ljust(width[, fillchar]) width – 指定字符串长度,fillchar – 填充字符,默认为空格,返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
max(str) 返回字符串中最大的字母
min(str) 返回字符串中最小的字母
str.replace(old, new[, max]) old – 将被替换的子字符串,new – 新字符串,用于替换old子字符串,max – 可选字符串, 替换不超过 max 次返回字符串中的 old(旧字符串),替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次
str.split(str="", num=string.count(str)) str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等,num – 分割次数。默认为 -1, 即分隔所有,split()通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num+1 个子字符串,返回分割后的字符串列表
str.splitlines([keepends]) keepends – 在输出结果里是否去掉换行符(’\r’, ‘\r\n’, \n’),默认为 False,不包含换行符,如果为 True,则保留换行符,splitlines() 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表
>>> intab='aeiou'	   
>>> outtab='12345'	   
>>> a='aeiou12345'	   
>>> a.maketrans(intab,outtab)	   
{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
>>> a='wade'	   
>>> a.maketrans(intab,outtab)	   
{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
>>> b.maketrans(intab,outtab)	   
{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
>>> a.translate(a.maketrans(intab,outtab))	   
'w1d2'
>>> c.translate(b.maketrans(intab,outtab))	   
Traceback (most recent call last):
  File "", line 1, in 
    c.translate(b.maketrans(intab,outtab))
NameError: name 'c' is not defined
>>> a.translate(b.maketrans(intab,outtab))	   
'w1d2'
>>> a.ljust(3,'#')	   
'wade'
>>> a.ljust(10,'#')	   
'wade######'
>>> max(a)	   
'w'
>>> min(a)
'a'
>>> a='Wade'	   
>>> max(a)#在有大小写的字符串中返回的是小写字母的最大值	   
'e'	
>>> min(a)#有大写字母的时候,返回是小的大写字符	   
'W'
#max(str)、min(str) 方法不只判断字母,会判断字符串中的所有字符,按照字符在 unicode 中的编码值来决定大小
>>> a='this is is is ista'
>>> a.replace('is','are')	   
'thare are are are areta'
>>> a.replace('is','are',3)	   
'thare are are is ista'
>>> a='this is string example....wow!!!'	   
>>> a.split()# 以空格为分隔符	   
['this', 'is', 'string', 'example....wow!!!']
>>> a.split('w')	   
['this is string example....', 'o', '!!!']
>>> a.split('i',1)	   
['th', 's is string example....wow!!!']
>>> 'ab c\n\nde fg\rkl\r\n'.splitlines()
['ab c', '', 'de fg', 'kl']
>>> 'ab c\n\nde fg\rkl\r\n'.splitlines(True)
['ab c\n', '\n', 'de fg\r', 'kl\r\n']
str.startswith(substr, beg=0,end=len(string)) str – 检测的字符串,substr – 指定的子字符串,strbeg – 可选参数用于设置字符串检测的起始位置,strend – 可选参数用于设置字符串检测的结束位置,startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查
str.strip([chars]) chars – 移除字符串头尾指定的字符序列,strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列
str.swapcase() 返回大小写字母转换后生成的新字符串
str.zfill(width) width – 指定字符串的长度。原字符串右对齐,前面填充0,返回指定长度的字符串
str.rstrip([chars]) chars – 指定删除的字符(默认为空格),返回删除 string 字符串末尾的指定字符后生成的新字符串
str.rfind(str, beg=0 end=len(string)) 返回字符串最后一次出现的位置,如果没有匹配项则返回-1
str.rindex(str, beg=0 end=len(string)) rindex() 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间
str.rjust(width[, fillchar]) width – 指定填充指定字符后中字符串的总长度.fillchar – 填充的字符,默认为空格,返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
>>> a='wadebosh'
>>> a.startswith('wade')
True
>>> a.startswith('ade')
False
>>> a.startswith('bosh',4)
True
>>> a.startswith('wade',4,6)
False
>>> a='   wade    '
>>> a.strip()#默认删除空格
'wade'
>>> a='123wade321'
>>> a.strip('123')#只要头尾有对应其中的某个字符即删除,不考虑顺序,直到遇到第一个不包含在其中的字符为止
'wade'
>>> a='*****wade***********'
>>> a.strip('*')
'wade'
>>> a='aSdGFhghFDhGhjHJ'
>>>> a.swapcase()
'AsDgfHGHfdHgHJhj'
>>> a.zfill(50)
'0000000000000000000000000000000000aSdGFhghFDhGhjHJ'
>>> a.rstrip()
'*****wade***********'
>>> a.rstrip('*')
'*****wade'
>>> str1 = "this is really a string example....wow!!!"
>>>> str1.rfind('is')
5
>>> str1.rindex('is')
5
>>> str1.rjust(50,'*')
'*********this is really a string example....wow!!!'

2.转义字符
在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表:
字符串内置函数_第1张图片

>>> print('a')
a
>>> print('a'\
	  'b')
ab
>>> print('aaaa\
bbbbb')
aaaabbbbb
>>> print(r'\\\\\\\\')#原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,
没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,
与普通字符串有着几乎完全相同的语法
\\\\\\\\
>>> print('I\'M  xiaoliangpeng')
I'M  xiaoliangpeng
>>> print('as\\df')
as\df
>>> print('a ssd\"')
a ssd"
>>> print('a ssd\a')
a ssd
>>> print('a ssd\b')
a ssd
>>> print('a ssd\000')
a ssd

3.字符串格式化
字符串内置函数_第2张图片

>>> print('dhaddjkh%dge  pingguo'%3)
dhaddjkh3ge  pingguo
>>> print('dhaddjkh%sge  pingguo'%'asdf')
dhaddjkhasdfge  pingguo
>>> print('dhaddjkh%2fge  pingguo'%3.234567)
dhaddjkh3.234567ge  pingguo

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),函数 str.format(),它增强了字符串格式化的功能

你可能感兴趣的:(python基础)