1. 基本对象类型(python里面一切皆是对象)
(接前文)
1.4.4 字符串函数
1.4.4.1 input 键盘输入
>>> name = input("Please input your name:") #name为字符串类型(str)
Please input your name:Connie
1.4.4.2 upper():字符串全部变为大写
示例:
>>>str = "I Am Connie"
>>>str.upper() #返回I AM CONNIE
1.4.4.3 len() 返回对象(字符串、列表、元组、字典、集合等)长度或项目个数
语法:len( obj )
返回值:返回对象长度。示例:
>>>str = "connie"
>>>len(str) #返回字符串长度6
1.4.4.4 lower() 转换字符串中所有大写字符为小写
示例:
>>>str = "I Am Connie"
>>>str.lower() #返回i am connie
1.4.4.5 count(),统计字符串里某个子字符串出现的次数
语法:str.count(sub, start= 0,end=len(string))
sub -- 搜索的子字符串
start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
示例:
str="www.runoob.com"
sub='o'
str.count(sub) #返回3
sub='run'
str.count(sub,0,10) #返回1
1.4.4.6 find() :检测字符串中是否包含子字符串
语法:str.find(str, beg=0, end=len(string))
str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
返回值:如果包含子字符串返回开始的索引值,否则返回-1。示例:
>>>str1 = "I am Tom, Tom cat"
>>>str2 = "Tom";
>>>str1.find(str2) #返回5
>>>str1.find(str2, 7)#返回10
>>>str1.find(str2,0, 7) #返回-1
1.4.4.7 index() 与find()方法同,区别是抛异常
语法:str.index(str, beg=0, end=len(string))
str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
返回值:如果包含子字符串返回开始的索引值,否则抛异常“ValueError: substring not found”
1.4.4.8 rfind() 返回字符串最后一次出现的位置(find返回第一个位置)
返回字符串最后一次出现的位置。
语法:str.rfind(str, beg=0 end=len(string))
str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度
返回值:返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
示例
>>>str1 = "I am connie"
>>>str2 = "am"
>>>str1.rfind(str2) #返回2(索引),即第三个字符位置
>>>str1.rfind(str2, 0, 10) #返回2(索引),即第三个字符位置
>>>str1.rfind(str2, 10, 0) #返回-1,找不到
1.4.4.9 rindex() 与rfind方法同,区别是抛异常
语法:str.rindex(str, beg=0 end=len(string))
str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度
返回子字符串 str 在字符串中最后出现的位置,如果没有匹配则抛异常。
1.4.4.10 join() 将序列中的元素以指定的字符连接生成一个新的字符串
语法:str.join(sequence)
示例:
>>>s1 = "-"
>>>s2 = ""
>>>seq = ("c", "o", "n", "n", "i", "e") # 字符串序列
>>>s1.join( seq ) #用s1定义的符号('-')连接,输出“c-o-n-n-i-e”
>>>s2.join( seq ) #用s2定义的符号(空)连接,输出“connie”
1.4.4.11 split() 指定分隔符对字符串进行切片
通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。
语法:str.split(str1, num)
str1 -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。
返回值:返回分割后的字符串列表。
>>>str = "I am connie, from Shanghai"
>>>str.split() # 以空格为分隔符,返回['I', 'am', 'connie,', 'from', 'Shanghai']
>>>str.split('a',1) # 以 a 为分隔符,分隔1次,返回['I ', 'm connie, from Shanghai']
>>>str = '10001,10003,12310,13631,15136'
>>>str.split(',') #返回['10001', '10003', '12310', '13631', '15136']
1.4.4.12 strip() 删除字符串头尾指定的字符
用于移除字符串头尾指定的字符(默认为空格)或字符序列。相关方法ltrip(),rtrip()
示例:
>>>str = " I am Connie "
>>>str.strip() #返回'I am Connie '
>>>str = "88888888I am connie888"
>>>str.strip('8') #返回I am connie
1.4.4.13 lstrip() 删除字符串左边指定的字符
语法:str.lstrip([chars])
chars --指定截取的字符。
返回值:返回截掉字符串左边的空格(默认)或指定字符后生成的新字符串。
示例:
>>>str = " I am Connie "
>>>str.lstrip() #返回'I am Connie '
>>>str = "88888888I am connie8888888"
>>>str.lstrip('8') #返回I am connie8888888
1.4.4.14 rstrip() 删除字符串右边指定字符
删除 string 字符串右边的指定字符(默认为空格)
>>>str = "I am connie8888888";
>>>str.rstrip('8')#返回I am connie
1.4.4.15 max() 返回字符串中最大的字母。大小按ASCII表中的编号
>>>str = "Connie0725"
>>>max(str) #返回o,小写编号更大
>>>str = "725"
>>>max(str) #返回7
1.4.4.16 min() 返回字符串中最小的字母。大小按ASCII表中的编号
>>>str = "bda"
>>>max(str) #返回a
1.4.4.17 replace() 字符串替换
把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法:str.replace(old, new[, max])
示例:
>>>str = "I am connie"
>>>str.replace("connie", "niuniu") #返回I am niuniu
>>>str = "www.google.com"
>>>str.replace("w", "1",2) #返回11w.google.com,指定了替换次数参数2,只替换2次
1.4.4.18 maketrans() 创建字符映射的转换表(替换字符串中多个字符)
方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,
第二个参数也是字符串表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。
语法:str.maketrans(intab, outtab)
intab -- 字符串中要替代的字符组成的字符串。
outtab -- 相应的映射字符的字符串。
示例:
>>> intab = "wo"
>>> outtab = "12"
>>> trantab = str.maketrans(intab, outtab)
>>> str = "www.google.com"
>>> str.translate(trantab)
输出:'111.g22gle.c2m'
1.4.4.19 translate() 根据参数table给出的表转换字符串的字符
translate()方法语法:
str.translate(table)
bytes.translate(table[, delete])
bytearray.translate(table[, delete])
table -- 翻译表,翻译表是通过 maketrans() 方法转换而来。
deletechars -- 字符串中要过滤的字符列表。
返回值:返回翻译后的字符串,若给出了 delete 参数,则将原来的bytes中的属于delete的字符删除,
剩下的字符要按照table中给出的映射来进行映射 。
示例:补充说明,该方法在不同的python版本中,有区别,需要查看具体的版本文档
>>> intab = "ai"
>>> outtab = "12"
>>> trantab = str.maketrans(intab, outtab) #创建翻译对照表
>>> str = "I am niuniu"
>>> str.translate(trantab)#返回I 1m n2un2u,翻译字典表中a对应1,i对应2
1.4.4.20 isalnum() 检测字符串是否由字母和数字组成
检测字符串是否由字母和数字组成。应用场所如校验用户注册时用户名是否合法,
通常用户名只能是字母或数字,且以字母开头
返回值:如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
1.4.4.21 isalpha() 检测字符串是否只由字母或文字组成
检测字符串是否只由字母或文字组成。不能是数字或特殊符号
语法:str.isalpha()
返回值:如果字符串至少有一个字符并且所有字符都是字母或文字则返回 True,否则返回 False。
1.4.4.22 isdigit 检测字符串是否只由数字组成
检测字符串是否只由数字组成。应用场景如通常检验输入的内容是否为电话号码。
语法:str.isdigit()
返回值: 如果字符串只包含数字则返回 True 否则返回 False。
1.4.4.23 isnumeric() 检测字符串是否只由数字组成(包括分数、指数等)
检测字符串是否只由数字组成,数字可以是: Unicode 数字,全角数字(双字节),罗马数字,汉字数字。
指数类似 ² 与分数类似 ½ 也属于数字。(太牛逼了!!!)
语法:str.isnumeric()
返回值:如果字符串中只包含数字字符,则返回 True,否则返回 False
示例:
>>> str = "connie0725"
>>> str.isnumeric() #返回false,不是全数字
>>> str = "0725"
>>> str.isnumeric()#返回true
>>> str = "½0725²"
>>> str.isnumeric()#返回true,这个判断太强大了
1.4.4.24 isdecimal() 字符串是否只包含十进制字符
示例:
>>> str = "niuniu0725"
>>> print (str.isdecimal()) #返回false
>>> str = "123"
>>> str.isdecimal() #返回true
>>> str.isdigit() #返回true 这两个没区别,都是判断是否为数字
1.4.4.25 islower() 检测字符串是否由小写字母组成
语法:str.islower()
返回值:如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False。示例:
>>> str = "123456";
>>> str.islower() #返回false,字符串中没有字母
>>> str = "ab123456def!$&";
>>> str.islower() #返回true,有字母且为小写
>>> str = "ab123456dEf!$&";
>>> str.islower() #返回false,有字母为大写
1.4.4.26 isupper() 字符串中所有的字母是否都为大写
检测字符串中所有的字母是否都为大写。
返回值:如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
示例:
>>> str = "I AM CONNIE!"
>>> str.isupper() #返回true,字母都是大写,可以有其他符号
>>> str = "I AM CONNIE!,lalala"
>>> str.isupper() #返回flase
1.4.4.27 isspace() 检测字符串是否只由空白字符组成
检测字符串是否只由空白字符组成。应用场景通常是用户输入信息时,无意或故意输入一串空格,这是有效的字符串,但通常
是无意义的字符串,系统对这种数据进行校验。
语法:str.isspace()
返回值:如果字符串中只包含空格,则返回 True,否则返回 False.
示例:
>>> str = " "
>>> str.isspace() #返回true
>>> str = "I am connie"
>>> str.isspace()#返回false
1.4.4.28 startswith() 检查字符串是否是以指定子字符串开头
语法:str.startswith(substr, beg=0,end=len(string));
str -- 检测的字符串。
substr -- 指定的子字符串。
strbeg -- 可选参数用于设置字符串检测的起始位置。
strend -- 可选参数用于设置字符串检测的结束位置。
返回值:如果检测到字符串则返回True,否则返回False。
示例:
>>> str = "I am niuniu"
>>> str.startswith( 'am' ) # 返回False,不是am 开头
>>> str.startswith( 'am', 2 ) #返回True, 从第3个字符开始的字符串
>>> str.startswith( 'am', 2, 4 ) #True 从第3个字符开始到第4个字符结束的字符串是否以am开头。
1.4.4.29 capitalize() 字符串的第一个字母变成大写,其他字母变小写。
示例:
>>> str = 'this string example from runoob...Wow!!!'
>>> str.capitalize() #输出:This string example from runoob...wow!!!
1.4.4.30 ljust() 原字符串左对齐,并用空格填充至指定长度
返回原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
语法:str.ljust(width[, fillchar])
width -- 指定字符串长度。
fillchar -- 填充字符,默认为空格。
示例:
>>> str = "connie"
>>> str.ljust(20, '*') #字符串右边填充*,直至字符串总长度为20
1.4.4.31 rjust() 原字符串左对齐,并用空格填充至指定长度
返回原字符串右对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
语法:str.rjust(width[, fillchar])
width -- 指定字符串长度。
fillchar -- 填充字符,默认为空格。
示例:
>>> str = "connie"
>>> str.rjust(20, '*') #字符串左边填充*,直至字符串总长度为20
1.4.4.32 zfill() 方法 返回指定长度的字符串,原字符串右对齐,前面填充0
语法:str.zfill(width)
示例:
>>> str = "I am connie"
>>> str.zfill(20) #返回 000000000I am connie
说明:可以用str.rjust(20,'0') 方法替代。
1.4.4.33 center() 指定的宽度 width 居中的字符串
返回一个指定的宽度 width 居中的字符串
语法:str.center(width[, fillchar]),
width -- 字符串的总宽度。
fillchar -- 填充字符。
说明:
1、返回一个指定的宽度居中的字符串,如果width小于字符串宽度直接返回字符串,否则使用fillchar去填充。
2、如果 width 小于字符串宽度直接返回字符串,不会截断:
3、fillchar 默认是空格
4、fillchar 只能是单个字符
示例:
>>> str = "www.runoob.com"
>>> str.center(21, '*') #输出 ****www.runoob.com***
1.4.4.34 title():将字符串中各单词的首字母变为大写。
示例:
>>> name='python book'
>>> name.title(), 输出Python Book
1.4.4.35 swapcase() 对字符串的大小写字母进行转换
用于对字符串的大小写字母进行转换。即大写变小写,小写变大写。想不到这个功能的应用场景
语法:str.swapcase()
1.4.4.36 endswith(),判断字符串是否以指定后缀结尾
用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False。
语法:str.endswith(suffix[, start[, end]])
suffix -- 该参数可以是一个字符串或者是一个元素。
start -- 字符串中的开始位置。
end -- 字符中结束位置。注意:该索引值为开区间。
示例:
>>> str='www.google.com'
>>> suffix='.com'
>>> str.endswith(suffix) #True
>>> str.endswith(suffix,5) #True
>>> str.endswith(suffix,0,13) #false
>>> str.endswith(suffix,0,14) #True