python3 字符串方法

来源:互联网 发布:linux怎么查看密码密码 编辑:程序博客网 时间:2024/05/16 03:50

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

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

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

1 >>> s.count('0',5,13)2 03 >>> s.count('o',5,13)4 15 >>> 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 False3 >>> 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 34 >>> s.find('o',3,13)5 36 >>> s.find('o',4,13)7 118 >>> 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 34 >>> 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 True4 >>> 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 False17 >>> num.isnumeric()18 True

17.isidentifier() 判断字符串是否包含该语言的保留字

'def'.isidentifier()Out[3]:True'eval'.isidentifier()Out[4]:True

18.isprintable() 判断字符串中所有的字符串都是可以通过repr表示成字符串,或者字符串是空的,都返回True,否则返回False

chr(1000000).isprintable()Out[13]:False

这里使用一个超出字符编码范围的数字去转化成字符,测试其是否可以打印,显然,答案是不行。

19.isspace() 判断字符串,至少有一个字符的字符串中所有字符是否都是空格,不是则返回False

''.isspace()Out[14]:False' '.isspace()Out[15]:True' a'.isspace()Out[16]:False

20.istitle() 判断是否是标题格式,这里理解为首字母大写。

'Author'.istitle()Out[17]:True'aA'.istitle()Out[18]:False'Aa'.istitle()Out[19]:True'AAAa'.istitle()Out[20]:False

21.isupper() 判断字符串是否全部是大写

'AAAa'.isupper()Out[21]:False

22.join() 返回一个用指定字符串分隔的字,或者是将指定字符加入到另一个字符中。

a = '12345'','.join(a)Out[23]:'1,2,3,4,5'

23.lower() 返回的是指定字符串的拷贝,并转化成小写

'AAA'.lower()Out[24]:'aaa'

24.ljust() 可以指定宽度,以及填充字符串,返回的是按宽度,填充字符串格式化后的左对齐的字符串。

b = 'a'.ljust(10)len(b)Out[28]:10'a'.ljust(10, 'A') # 指定以A填充Out[30]:'aAAAAAAAAA'

25.partition:在指定字符串中查找sep,如果找到了返回该字符前面的部分,sep,及后面的部分,如果没找到则返回sep及两个空字符中,类似于split,但又有不同

'ssaafdaf'.partition('f')Out[3]:('ssaa', 'f', 'daf')

26.replace ,用指定字符串替换指定字符串,如果不指定替换次数,仅替换第一个。

'this is  a test'.replace('a', 'A')Out[4]:'this is  A test'

27.rfind(): 返回指定子串的最高索引,如果没找到则返回-1,可以指定要开始替换的起始,结束位置。

'this is a test'.rfind('i')Out[5]:5

28.rindex(),与上面的rfind一样,只是如果没找到不是返回-1,而是触发错误

'this is a test'.rindex('g')Traceback (most recent call last):  File "C:\Program Files\Python35\lib\site-packages\IPython\core\interactiveshell.py", line 2869, in run_code    exec(code_obj, self.user_global_ns, self.user_ns)  File "<ipython-input-6-f8a393e6a7d2>", line 1, in <module>    'this is a test'.rindex('g')ValueError: substring not found

29.rjust();与ljust()相对应

'aa'.ljust(10)Out[25]:'aa        ''aa'.rjust(10)Out[26]:'        aa'

30.rpartition()与partition一样,但是是从右边开始

'this is a test'.rpartition('a')Out[7]:('this is ', 'a', ' test')

31.rsplit(),与split作用相同,但是从右侧开始

this is a test'.rsplit(' ')Out[8]:['this', 'is', 'a', 'test']

但是讲真,如果不仔细考虑你是不会发现它与split有什么不同的,只有当你指定了最大切割次数时才会有效果。

'this is a test'.split(' ', 1)Out[10]:['this', 'is a test']<br>'this is a test'.rsplit(' ', 1)<br>Out[11]: <br>['this is a', 'test']<br>

32.rstrip(), 从右侧移除指定字符

'this is a test'.rstrip('t')Out[12]:'this is a tes'

33.split(), 按指定字符串对目标字符串进行切割,可以指定切割次数

'this is a test'.split('i', 1)Out[13]:['th', 's is a test']

感觉它与partition的不同在于它返回的结果中移除了指定的字符串

34.splitlines(),返回字符串的行,按换行符切割,如果没指定keepends=True,则会将其从结果中移除

'this is a string\n this is a test'.splitlines()Out[14]:['this is a string', ' this is a test']'this is a string\n this is a test'.splitlines(keepends=True)Out[16]:['this is a string\n', ' this is a test']

35.startswith(),判断字符串是否以某个字符开头

'this is a test'.startswith('t')Out[18]:True不一定非得一单个字符'this is a test'.startswith('this')Out[19]:True

36.strip() 移除字符串两侧的指定字符串,默认移除空格,需要注意的是可以指定多个字符

'this is a test'.strip('ts')Out[20]:'his is a te'

37.swapcase() 转换大小写

'this is A test'.swapcase()Out[21]:'THIS IS a TEST'

38.title(), 标题格式,就是首字母大写,其它字符小写

'this is a test'.title()Out[22]:'This Is A Test'

39.upper(),将字符全部转成大写

'this is a test'.upper()Out[24]:'THIS IS A TEST'

40.zfill(),这里的z指zero,用0将字符填充到指定长度

'aa'.zfill(10)Out[25]:'00000000aa'

转载于http://www.cnblogs.com/Andy963/p/5073128.html

原创粉丝点击