python字符串常用内置方法
定义:
字符串是一个有序的字符的集合,用与存储和表示基本的文本信息。
python中引号中间包含的就是字符串。
# s1='hello world'
# s2="hello world"
# s3="""hello world"""
# s3='''hello world'''
补充:
-
字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r'l hf'
-
unicode字符串与r连用必需在r前面,如name=ur'l hf'
#>>> print('a b') a b #>>> print(r'a b') a b
字符串连接
示例:
>>> x = 'hello world!'
>>> x = x[:6] + 'tom'
>>> x
'hello tom'
内置函数len()
len() 方法返回对象(字符串、列表、元组等)长度或项目个数。
语法:
len(s)
s-----对象
>>> str ='hello world'
>>> len(str)
11
>>> L = [1,2,3,4,5]
>>> len(L)
5
>>>
strip()
strip英文翻译:脱掉,剥夺
strip()默认移除字符串两边的空白。只是返回处理后的副本,原来的值不变。
>>> x=' tom '
>>> x
' tom '
>>> x.strip()
'tom'
>>>
也可以自己指定要去除的目标:
>>> x='ssssstomsssss'
>>> x.strip('s')
'tom'
>>> x='#######tom####'
>>> x.strip('#')
'tom'
同类的还有lstrip(),rstrip()
>>> x='#######tom####'
>>> x.lstrip('#')
'tom####'
>>> x.rstrip('#')
'#######tom'
>>>
capitalize()
capitalize()返回首字母大写的副本,不改变原来的值:
>>> x='hello,world'
>>> x.capitalize()
'Hello,world'
title()
title()返回标题样式的副本(单词首字母大写),不改变原来的值:
>>> x='hello,world'
>>> x.title()
'Hello,World'
upper()
upper()返回所有字母大写的副本,不改变原来的值:
>>> x='hello,world'
>>> x.upper
'HELLO,WORLD'
lower()
lower()返回所有字母小写的副本,不改变原来的值:
>>> x='Hello,World'
>>> x.lower()
'hello,world'
>>>
center()
center()返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。居中显示
语法:
str.center(width[,fillchar])
width------字符串的总宽度
fillchar-----填充字符
>>> x='hello'
>>> x.center(15,'#')
'#####hello#####'
>>>
count()
count()方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。空格也是字符。
语法:
str.count(sub,start,end)
sub-----搜索的子字符串
start----字符串开始搜索的位置,默认为第一个字符,第一个字符索引值为0
end-----字符串中结束搜索的位置。默认为字符串的最后一个位置。
>>> x='hel lo love'
>>> x.count(' ')
2
>>> x.count('l',0,4)
1
endswith()
endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。
语法:
str.endswith(suffix,start,end)
suffix----该参数可以是一个字符串或者是一个元素
start----字符串开始的位置
end------字符中结束的位置
>>> x='/bin/nologin'
>>> x.endswith('n')
True
>>> x.endswith('nologin')
True
>>>
startswith()
startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。
语法:
str.startwith(str,strbegin,strend)
str-----检测的字符串。
strbegin----可选参数用于设置字符串检测的起始位置。
strend----可选参数用于设置字符串检测的结束位置
>>> x.startswith('/')
True
>>> x.startswith('/bin')
True
>>>
find()
find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。(没找到就返回-1)
语法:
str.find(str,begin,end)
str-----指定检索的字符串
begin----开始索引,默认为0
end-----结束索引,默认为字符串的长度
>>> x='/etc/sshd/ssh.conf'
>>> x.find('/')
0
>>> x.find('/',1,4)
-1
>>> x.find('.conf')
13
>>>
>>>> x.find('.cont')
-1
>>>
format()
format()和%格式化功能一样,基本语法是通过 {} 和:来代替以前的%。format函数可以接受不限个参数,位置可以不按顺序。
示例:
>>> msg='Nname:{},age:{},sex:{}'
>>> print(msg.format('tom',18,'male'))
Nname:tom,age:18,sex:male
>>> msg='Nname:{x},age:{y},sex:{z}'
>>> print (msg.format(x='tom',y=18,z='male'))
Nname:tom,age:18,sex:male
>>> url='https://movie.douban.com/top250?start={page}&filter=&type='
>>> print(url.format(page=50))
https://movie.douban.com/top250?start=50&filter=&type=
>>>
字符串切片
str[索引初始:索引结束:索引步长]
>>> print (x[0])
h
>>> print (x[0:3])
hel
>>> print (x[0:5:2])
hlo
>>> print (x[::-1])
dlrow olleh
>>>
>>> print (x[:-1])
hello worl
>>> print (x[1:])
ello world
>>>
简而言之,分片操作的实现需要提供两个索引作为边界,第一个索引元素包含在分片内,第二个则不包含在分片内。
对于分片还可以使用更大的步长,步长为负数的时候,从尾部开始取数据
isdigit()
digit英文解释:数字
isdigit()判断字符串内是否全是数字。如果字符串只包含数字则返回 True 否则返回 False。
>>> x='12345'
>>> x.isdigit()
True
>>> x='3.1415'
>>> x.isdigit()
False
>>>
isalpha()
isalpha() 方法检测字符串是否只由字母组成。如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
>>> x='adswqeq '
>>> x.isalpha()
False
>>> x='a'
>>> x.isalpha()
True
>>>
index()
index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
>>> x='/etc/sshd/ssh.conf'
>>> x.index('/')
0
>>> x.index('/',1,4)
Traceback (most recent call last):
File "<pyshell#90>", line 1, in <module>
x.index('/',1,4)
ValueError: substring not found
>>> x.index('.conf')
13
>>> x.index('.cont')
Traceback (most recent call last):
File "<pyshell#92>", line 1, in <module>
x.index('.cont')
ValueError: substring not found
>>>
replace()
replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法:
str.replace(old,new,max)
old----将被替换的子字符串
new----新字符串,用于替换old子字符串
max----指定替换次数
>>> x='this is test'
>>> x.replace('is','are')
'thare are test'
>>> x.replace('is','are',1)
'thare is test'
>>> x.replace('is','are',2)
'thare are test'
>>> x.replace('is','are',3)
'thare are test'
>>>
split()
split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
语法:
str.split('分隔符',分隔次数)
分隔符默认为所有的空字符,包括空格、换行(
)、制表符( )等。
>>> x='root:x:0:0::/root:/bin/bash'
>>> x.split()
['root:x:0:0::/root:/bin/bash']
>>> x.split(':')
['root', 'x', '0', '0', '', '/root', '/bin/bash']
>>> x.split(':',2)
['root', 'x', '0:0::/root:/bin/bash']
>>> x.split(':',3)
['root', 'x', '0', '0::/root:/bin/bash']
>>>
isspace()
isspace() 方法检测字符串是否只由空格组成。
语法:
str.isspace()
如果字符串中只包含空格,则返回 True,否则返回 False.和将一段空字符串使用strip处理后判断是否等于''一样。
>>> x = ' '
>>> x.isspace()
True
>>> x.strip() == ''
True
>>>
swapcase()
swapcase() 方法用于对字符串的大小写字母进行转换。
语法
str.swapcase()
返回大小写字母转换后生成的新字符串。
>>> x = '''it's good!'''
>>> x.swapcase()
"IT'S GOOD!"
>>> x = 'Ab'
>>> x.swapcase()
'aB'
>>>
ljust()和rjust()
ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
语法:
str.ljust(width,fillchar)
width-----指定字符串长度
fillchar----填充字符,默认为空格
>>> x = 'tom'
>>> x.ljust(10,'#')
'tom#######'
rjust() 方法返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。
示例:
>>> x = 'tom'
>>> x.rjust(10,'#')
'#######tom'
>>>
序号 | 方法及描述 |
---|---|
1 | capitalize() |
2 | 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 |
3 | count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
4 | bytes.decode(encoding="utf-8", errors="strict") Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 |
5 | encode(encoding='UTF-8',errors='strict') 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' |
6 | endswith(suffix, beg=0, end=len(string)) |
7 | 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 |
8 | find(str, beg=0 end=len(string)) 检测 str 是否包含在字符串中 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 |
9 | index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常. |
10 | 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
11 | 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False |
12 | 如果字符串只包含数字则返回 True 否则返回 False.. |
13 | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
14 | 如果字符串中只包含数字字符,则返回 True,否则返回 False |
15 | 如果字符串中只包含空格,则返回 True,否则返回 False. |
16 | 如果字符串是标题化的(见 title())则返回 True,否则返回 False |
17 | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
18 | 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
19 | 返回字符串长度 |
20 | 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
21 | 转换字符串中所有大写字符为小写. |
22 | 截掉字符串左边的空格 |
23 | 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
24 | 返回字符串 str 中最大的字母。 |
25 | 返回字符串 str 中最小的字母。 |
26 | 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。 |
27 | rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找. |
28 | rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始. |
29 | 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
30 | 删除字符串字符串末尾的空格. |
31 | split(str="", num=string.count(str)) num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串 |
32 | 按照行(' ', ' ', ')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
33 | startswith(str, beg=0,end=len(string)) 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 |
34 | 在字符串上执行 lstrip()和 rstrip() |
35 | 将字符串中大写转换为小写,小写转换为大写 |
36 | 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
37 | translate(table, deletechars="") 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 |
38 | 转换字符串中的小写字母为大写 |
39 | 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
40 | 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |