python3 字符串步骤

python3 字符串方法

1.capitalize() 将字符串的第一个字符改为大写

1 >>> s='i love cnblog'
2 >>> s.capitalize()
3 'I love cnblog'

2.casefold() 将字符串所有字符改为小写

1 >>> (s.capitalize()).casefold()
2 'i love cnblog'

3.center(width) 将字符串居中,并用空格将字符串填充至width长度,空格均匀分布在两侧,当width<len(s)时没有效果

1 >>> s.center(20)
2 '   i love cnblog    '

4.count(sub[,start[,end]]) 返回sub在字符串里出现的次数,start,end为可选参数,决定范围

1 >>> s.count('0',5,13)
2 0
3 >>> s.count('o',5,13)
4 1
5 >>> s.count('o',0,13)
6 2

5.encode(encoding='utf-8',errors='strict') 以encoding指定的编码格式对字符串进行编码

1 >>> s.encode(encoding='utf-8',errors='strict')
2 b'i love cnblog'
1 >>> s.encode()
2 b'i love cnblog'

6.endswith(sub[,start[,end]]) 检查字符串是否以sub结尾,是返回True,否返回False,start,end为可选参数,决定范围

1 >>> s.endswith('!',0,13)
2 False
3 >>> s.endswith('g')
4 True

7.expandtabs([tabsize=8]) 把字符串的tab字符(\t)转化为空格,如不指定tabsize,默认为8个空格

1 >>> s.expandtabs()
2 'i love cnblog'
3 >>> s='\t i love cnblog\t'
4 >>> s.expandtabs()
5 '         i love cnblog  '

这里第一个\t转化为8个空格,第二个tab是在后面加了3个空格,与'cnblog'相加共8个字符,并不是直接加8个空格

8.find(sub[,start[,end]]) 检测sub是否在字符串中,如果在则返回index,否则返回-1,start,end为可选参数,决定范围

1 >>> s='i love cnblog'
2 >>> s.find('o')
3 3
4 >>> s.find('o',3,13)
5 3
6 >>> s.find('o',4,13)
7 11
8 >>> s.find('g',0,13)
9 12

这里返回的是sub的index,同时start,end都是包含的。

 9.index(sub[,start[,end]]) 类似find(),不同在于如果sub不在字符串中,返回的不是-1而是异常

1 >>> s='i love cnblog'
2 >>> s.index('o')
3 3
4 >>> s.index('h')
5 Traceback (most recent call last):
6   File "<pyshell#2>", line 1, in <module>
7     s.index('h')
8 ValueError: substring not found

10.isalnum() 如果字符串至少有一个字符,并且所有字符都是字母或数字则返回True,否则False

 1 >>> s='i love cnblog'#有空格
 2 >>> s.isalnum()
 3 False
 4 >>> s='ilovecnblog'
 5 >>> s.isalnum()
 6 True
 7 >>> s='11ii'
 8 >>> s.isalnum()
 9 True

11.isalpha() 如果字符串至少有一个字符,并且所有字符都是字母则返回True,否则False

1 >>> s='ilovecnblog'
2 >>> s.isalpha()
3 True

12.isdigit() 如果字符串只包含数字则返回True,否则返回False

1 >>> s='1234'
2 >>> s.isdigit()
3 True

13.isdecimal() 如果字符串只包含十进制数字则返回True,否则返回False

>>> s='1234'
>>> s.isdecimal()
True
>>> s='ox12'#十六进制
>>> s.isdecimal()
False
>>> s='o123'#八进制
>>> s.isdigit()
False

14.islower() 如果字符中至少包含一个能区分大小写的字符,并且这些字符都是小写则返回True,否则返回Flase

 isupper()如果字符中至少包含一个能区分大小写的字符,并且这些字符都是大写则返回True,否则返回Flase

1 >>> s='ilovecnblog'
2 >>> s.islower()
3 True
4 >>> s='ILOVE'
5 >>> s.isupper()
6 True

15.isnumeric() 如果字符串只包含数字字符,则返回True,否则返回False

初一看感觉和isdigit()是一样的,但是:

 1 >>> num='1'
 2 >>> num.isdigit()
 3 True
 4 >>> num.isnumeric()
 5 True
 6 >>> num=b'1'
 7 >>> num.isdigit()
 8 True
 9 >>> num.isnumeric()
10 Traceback (most recent call last):
11   File "<pyshell#31>", line 1, in <module>
12     num.isnumeric()
13 AttributeError: 'bytes' object has no attribute 'isnumeric'
14 >>> num=''#汉字的数字,同样的还有罗马数字等
15 >>> num.isdigit()
16 False
17 >>> num.isnumeric()
18 True

 

明天继续