Phtyon基础类解析
一、str
-
capitalize
功能:字符串第一个字母大转换大写,其它字母转小写
print("alsdfjsAFSFEG. asdfFEFE".capitalize()) #输出 Alsdfjsafsfeg. asdffefe
-
casefold
功能:所有字母转成小写
print("String.Hash()".casefold()) #输出 string.hash()
-
center
功能:字符串开头和结尾添加空格来补齐给定的长度,如果左右两边总数为单数,则右边多一个空格
print("abc".center(7, "#")) print("abc".center(8)) print("abc".center(1)) print(" abc ".center(1)) #输出 '##abc##' 左边两个空格、右边两个空格 ' abc ' 左边两个空格、右边3个空格 'abc' 宽度的值小于字符串,不做任何处理 ' abc '
-
count
功能:统计指定的字符串在当前字符串中出现的次数
print("abcdefg".count("zz")) print("abccccc".count("c")) print("aaaaaa".count("a", 0, 2)) #输出 0 5 2
-
encode
功能:返回字符串编码后的数据,默认的编码是当前的字符串编码
def handler(exc): print(exc) return 'custom error', exc.end codecs.register_error('test.handler', handler) Str = "您好" Str = Str.encode("utf-8") print(f"###encode###{Str}") ###iso-8859-1,不支持中文,会报错执行handler方法 Str = "您好" Str = Str.encode("iso-8859-1", errors='test.handler') print(f"###iso-8859-1###{Str}") #输出 ###encode###b'\xe6\x82\xa8\xe5\xa5\xbd' 'latin-1' codec can't encode characters in position 0-1: ordinal not in range(256) ###iso-8859-1###b'custom error'
-
endswith
功能:判断字符串是否以指定字符结尾
Str = "abcdefg1234567890" print(f"########{Str.endswith('90')}") print(f"########{Str.endswith('b',0, 2)}") #输出 ########True
-
expandtabs
功能:填充tab(\t)空格数量,tabSize不设置默认为8
Str = "hello\tword\t\nhell\tword\nhellowo\tend" print("1234567890") print(f"{Str.expandtabs(tabsize=8)}") #输出 hello word hell word hellowo end
-
find
功能:查找字符串匹配给定的最小索引,_sub第一个参数为要查找的字符串,start第二个参数为起始值,end第三个参数为结束值,__start和**__end**指定要查检字段的范围
find和index区别
- find找不到返回-1
- index报错(ValueError: substring not found)
Str = "hello word word" print(f"##len: {len(Str)}") print(f"##index: {Str.find('word')}") print(f"##index: {Str.find('word', 5, 10)}") print(f"##index: {Str.find('word', 7, 10)}") print(f"##index: {Str.find('word', 7, 15)}") #输出 ##len: 15 ##index: 6 ##index: 6 ##index: -1 ##index: 11
-
format
功能:字符串格式化,字符串中使用’{}'标记需要替换的地方,如果大括号中不放数字,就按顺序替换大括号,如果大括号中放中数字标识替换顺序,则按数字顺序替换,标记顺序的数字必须是从0开始,中间不能缺失序号,比例{0}{2},这样会报错。下面例子中的f"###{}",其中f是format的缩写
Str = "hello {}" print(f"#####{Str.format('hilary')}") Str = "hello {},the word {}" print(f"#####{Str.format('hilary', 'bea')}") Str = "hello {1},the word {0}" print(f"#####{Str.format('hilary', 'bea')}") print("{}.{}.{}".format('1小时','5分', '23秒')) #输出 #####hello hilary #####hello hilary,the word bea #####hello bea,the word hilary 1小时.5分.23秒
-
format_map
功能:字符串格式化,和format的区别是一个是按list替换数据,一个是通过key来替换数据,如果map中数据多于要替换的是可以正常执行的,如果要格式化的数据key在map中找不到则会报错
Str = "hello {a},{b}" replay_map = {'a': '1', 'b': 2} print(f"#####{Str.format_map(replay_map)}")
-
index
功能:返回指定字符在目标字符串中的最小索引值,参数__start和end指定目标字符串中检查的区域,详情见find
find和index区别
- find找不到返回-1
- index报错(ValueError: substring not found)
-
isalnum
功能:判断字符串中的所有字符都是字母数字且字符串中至少有一个字符时,返回True,否则返回False
-
isalpha
功能:如果字符串中的所有字符都是字母,那么该字符串就是字母且字符串不能为空。
-
isascii
功能:ASCII字符的码位范围是U+0000-U+007F。空字符串也是ASCII。
-
isdecimal
功能:如果字符串中的所有字符都是十进制和十进制,则该字符串为十进制字符串,字符串不能为空。
-
isdigit
功能:如果字符串中的所有字符都是数字,则是数字字符串,字符串不能为空。
-
isidentifier
功能:判断字符是否为pythone合法的标识符,使用**keyword.iskeyword(s)**来判断是否为保留字符
-
islower
功能:判断字符串是否为小写字符串,字符串中所有的字母a-z为小写不能包含大写字母A-Z,字符串中可以包含其它特殊字符,也样也包含中文,均识为小写,但字符串第一个字母必须为小字a-z字母
-
isnumeric
功能:判断字符串是否为数字
-
isprintable
功能:字符串中是否包含非打印可见的字符:\t,\n
-
isspace
功能:字符串是否是由空格组成,字符串中包含非空格字符返回False,\t,\n 为空格字符
-
istitle
功能:字符串中每个单词首写字母是否为大写
'\U00010401\U00010429'.istitle() 𐐁𐐩//True 'My name'.istitle() //False 'My Name'.istitle() //True 'ID'.istitle() //False
-
isupper
功能:字符串只包A-Z为True,否则为False,与islower正好相反
-
join
功能:拼接字符串,以前面字符分隔
'.'.join(['ab', 'pq', 'rs']) #输出 ab.qp.rs
-
ljust
功能:字符串不够长度时末尾追回指定字符串,默认追回空格
print(f"#####{'abc'.ljust(6,)}#") print(f"#####{'abc'.ljust(6,'*')}#") print(f"#####{'abc'.ljust(2,'*')}#") #输出 #####abc # #####abc***# #####abc#
-
lower
功能:字符串中的大写字母转成小写字母
-
lstrip
功能:删除字符串前导空格,\t,\n 均视为空格
-
maketrans
功能:返回一个str.translate()方法使用的表,
- 一个参数:map键值对,把key转换成Unicode,如果非Unicode值会报错
- 两个参数:这两个参数为长度相同的字符串,否则会报错
- 三个参数:前两个参数为长度相同的字符串,第三个值取第一个字符的Unicode值作为key,value为None
table = str.maketrans({'a': '1', 'b': 2, 'c': 3}) table2 = str.maketrans('abc', '123', 'DD') #输出 ###table##{97: '1', 98: 2, 99: 3} ###table2##{97: 49, 98: 50, 99: 51, 68: None}
-
partition
功能:用给定的字符串把目标字符串分隔成三部分:分隔符前的内容,分隔符,分隔符后的内容,如果目标串中未发现分隔符,则结果也是三部分:第一部分为全部内容,后两部分为空。
result = 'mississippi'.partition('ss') result2 = 'mississippi'.partition('aa') print(f"###result: ${result}") print(f"###result2: ${result2}") #输出 ###result: $('mi', 'ss', 'issippi') ###result2: $('mississippi', '', '')
-
removeprefix
功能:移除字符串起始指定字符并返回新的字符串,如果移除失败则原样返回
result = 'mississippi'.removeprefix('miss') result2 = 'mississippi'.removeprefix('iss') print(f"###result: {result}") print(f"###result2: {result2}") #输出 ###result: issippi ###result2: mississippi
-
removesuffix
功能:移除字符串结尾字符并返回移除后的新字符串,移除失败原样返回旧字符串,例子见:removeprefix
-
replace
功能:把目标字符串中的旧字符替换成新的字符,并把结果返回。old和new为必传字段,count默认为-1,替换所有,为正数则规则指定count字的字符串
-
rfind
功能:查找目标字符串最大的索引值,详情见:find
-
rindex
功能:查找目标字符串最大的索引值,详情见:infex
-
rjust
功能:字符串不够长度时,在前面添加指定字符,默认是空格,见:ljust
-
rpartition
功能:用给定的字符串把目标字符串分隔成三部分:分隔符前的内容,分隔符,分隔符后的内容,从右开始查找,如果未找到,目标内容全部显示在第三部分,前两个空字符串。见: rpartition
-
rsplit和split
功能:通过指定字符拆分目标字符串,返回结果为数组。参数为空时,分隔符为:空格、\n、\t、\f、\r
split为从左开始,rsplit为从右开始,maxsplit为最大分隔次数
result = 'missi ssippi\taa'.rsplit() result2 = 'mississippi'.rsplit('si', maxsplit=1) result3 = 'mississippi'.split('si') print(f"###result: {result}") print(f"###result2: {result2}") print(f"###result3: {result3}") #输出 ###result: ['missi', 'ssippi', 'aa'] ###result2: ['missis', 'ppi'] ###result3: ['mis', 's', 'ppi']
-
rstrip
功能:删除字符串后导空格,\t,\n 均视为空格,如果传参,则删除字符串最后的字符
result = 'mississippi \t'.rstrip() result2 = 'mississippi'.rstrip('pi') print(f"###result: {result}") print(f"###result2: {result2}") #输出 ###result: mississippi ###result2: mississ
-
splitlines
功能:以\n为分隔符,分隔字符串,默认\n不显示在列表中,参数keepends=True时\n显示在列表中
result = 'miss\nissi\nppi'.splitlines(keepends= True) result2 = 'miss\nissi\nppi'.splitlines() print(f"###result: {result}") print(f"###result2: {result2}") #输出 ###result: ['miss\n', 'issi\n', 'ppi'] ###result2: ['miss', 'issi', 'ppi']
-
startswith
功能:判断目标字符串是否以指定字符串开头,也可以指定在某个位置开始
result = 'mississippi'.startswith('mi') result2 = 'mississippi'.startswith('ss', 2, 5) print(f"###result: {result}") print(f"###result2: {result2}") #输出 ###result: True ###result2: True
-
strip
功能:删除字符串起始和结尾的空字符串,也可以是指定字符串,见:lstrip、rstrip
-
swapcase
功能:字符串大小写相互转换
result = 'mississippimi'.swapcase() result2 = result.swapcase() print(f"###result: {result}") print(f"###result2: {result2}") #输出 ###result: MISSISSIPPIMI ###result2: mississippimi
-
title
功能:把字符串中的每个单词转换成首个字母大写其它小写
result = 'miss issippimi'.title() result2 = 'MISS ISSIPPIMI'.title() print(f"###result: {result}") print(f"###result2: {result2}") #输出 ###result: Miss Issippimi ###result2: Miss Issippimi
-
translate
功能:用给定的表转换字符串中的每个字符,表中key为查询条件,value为替换结果值
table = str.maketrans({'a': '1', 'b': '2', 'c': '3'}) result = 'abcde'.translate(table) print(f"##translate###{result}") #输出 ##translate###123de
-
upper
功能:字符串所有字母转大写
-
zfill
功能:字符串左边填充前导0字符串
result = 'mississippimi'.zfill(15) print(f"###result2: {result}") #输出 ###result2: 00mississippimi