编程常见的字符串操作,字符串操作二

语法:

str.isalpha()

str.isdigit()

str.isalnum()

str.isspace()
>>> a = 'wang'
>>> a.isalpha()
True
>>> a = '512'
>>> a.isalpha()
False

38、replace,把字符串中的 old(旧字符串) 替换成
new(新字符串),如果指定第三个参数max,则替换不超过 max 次。语法:str.replace(old,
new[, max])

描述:

find:检测字符串中是否包含子字符串 str
,如果指定 beg(开始) 和 end(结束)
范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

index:检测字符串中是否包含子字符串 str
,如果指定 beg(开始) 和 end(结束)
范围,则检查是否包含在指定范围内,该方法与 python
find()方法一样,只不过如果str不在 string中会报一个异常。

rfind:类似于find()函数,只不过是从字符串右边开始查找。

rindex:类似于index()函数,只不过是从字符串右边开始查找。

32、rstrip,删除 string
字符串末尾的指定字符(默认为空格),语法:str.rstrip([chars])

8、decode,以 encoding 指定的编码格式解码字符串。默认编码为字符串编码,语法:str.decode(encoding=’UTF-8′,errors=’strict’)

7、填充ljust、center、rjust

33、lstrip,用于截掉字符串左边的空格或指定字符,语法:str.lstrip([chars])

18、isidentifier,检测字符串是否以字母开头

描述:

用于移除字符串左右两边、左边、右边指定的字符(默认为空白符,例如:/n, /r, /t, ‘
‘)或字符序列。

17、isdigit,检测字符串是否只由数字组成

>>> a = '12345'
>>> a.isdecimal()
True
>>> a = 'wang'
>>> a.isdecimal()
False

 9、isalpha、isdigit、isalnum、isspace

40、rindex,返回子字符串 str
在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。语法:str.rindex(str,
beg=0 end=len(string))

22、isprintable,包含所有可打印字符的字符串。

 2、大小写转换lower、upper、title、capitalize、swapcase**

7、encode,以 encoding 指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案,语法:str.encode(encoding=’UTF-8′,errors=’strict’)

>>> a.isidentifier()
False
>>> a = 'wang'
>>> a.isidentifier()
True

语法:

str.replace(old, new[, max])
  • old — 将被替换的子字符串。
  • new — 新字符串,用于替换old子字符串。
  • max — 可选字符串, 替换不超过 max 次。

20、isupper,检测字符串中所有的字母是否都为大写。

9、startwith,检查字符串是否是以指定子字符串开头,如果是则返回
True,否则返回 False。如果参数 beg 和 end
指定值,则在指定范围内检查,语法:str.startswith(str, beg=0,end=len(string))

 4、count

38、replace,把字符串中的 old(旧字符串) 替换成
new(新字符串),如果指定第三个参数max,则替换不超过 max 次。语法:str.replace(old,
new[, max])

21、isnumeric,检测字符串是否只由数字组成。这种方法是只针对unicode对象。

语法:

str.lower()
str.upper()
str.title()
str.capitalize()
str.swapcase()
>>> a
'today is a good day.'
>>> a.center(40)
'          today is a good day.          '
str = "this is really a string example....wow!!!"
substr = "is"

print(str.rfind(substr))
print(str.rfind(substr, 0, 10))
print(str.rfind(substr, 10, 0))

print(str.find(substr))
print(str.find(substr, 0, 10))
print(str.find(substr, 10, 0))

例如:

编程 1编程 2

>>> str1 = 'This is a example!'
... str2 = 'example'
... index = str1.find(str2, 0, len(str1))
... print(index)
10

>>> str1 = 'This is a example!'
... str2 = 'example'
... index = str1.index(str2, 0, len(str1))
... print(index)
10

View Code

13、index,检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和
end(结束) 范围,则检查是否包含在指定范围内,该方法与 python
find()方法一样,只不过如果str不存在 string中会报一个异常,语法:str.index(str,
beg=0, end=len(string))

str1 = "this is string example....wow!!!"
str2 = "is"

print(str1.rindex(str2))
print(str1.index(str2))

语法:

str.strip([chars])
str.lstrip([chars])
str.rstrip([chars])

37、rpartition

33、lstrip,用于截掉字符串左边的空格或指定字符,语法:str.lstrip([chars])

描述:

ljust:返回一个指定的宽度 width 居左的字符串,fillchar
为填充的字符,默认为空格。如果指定的长度小于原字符串的长度则返回原字符串。

center:返回一个指定的宽度 width 居中的字符串,fillchar
为填充的字符,默认为空格。如果指定的长度小于原字符串的长度则返回原字符串。

rjust:返回一个指定的宽度 width 居右的字符串,fillchar
为填充的字符,默认为空格。如果指定的长度小于原字符串的长度则返回原字符串。

21、isnumeric,检测字符串是否只由数字组成。这种方法是只针对unicode对象。

41、swapcase,用于对字符串的大小写字母进行转换。

例如: 

编程 3编程 4

>>> 'hello world'.count('o')
2

>>> 'hello world'.count('o', 5 , len('hello world'))
1

View Code

9、startwith,检查字符串是否是以指定子字符串开头,如果是则返回
True,否则返回 False。如果参数 beg 和 end
指定值,则在指定范围内检查,语法:str.startswith(str, beg=0,end=len(string))

>>> b
'TODAY IS A GOOD DAY.'
>>> b.lower()
'today is a good day.'

例如:

 

编程 5编程 6

>>> 'This \nis a \nexample'.split()
['This', 'is', 'a', 'example']

>>> 'This \nis a \nexample'.split(' ', 1)
['This', '\nis a \nexample'

>>> 'This \nis a \nexample'.splitlines()
['This ', 'is a ', 'example']

>>> 'This \nis a \nexample'.splitlines(True)
['This \n', 'is a \n', 'example']

>>> 'www.example.com'.partition('.')
('www', '.', 'example.com')

>>> 'www.example.com'.rpartition('.')
('www.example', '.', 'com')

View Code

>>> a = 'wang'
>>> a.ljust(10, '>')
'wang>>>>>>'

6、count,用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置,语法:str.count(sub,
start= 0,end=len(string))

 6、split、splitlines、partition、rpartition

描述:

split:指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num
个子字符串。

splitlines:按照行(‘\r’, ‘\r\n’,
\n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为
False,不包含换行符,如果为 True,则保留换行符。

partition:根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

rpartition:类似于partition()函数,只不过是从右边开始。

注:两个字符串的长度必须相同,为一一对应的关系。

34、maketrans,用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标,语法:str.maketrans(intab, outtab)

 5、replace

10、endwith,判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数”start”与”end”为检索字符串的开始与结束位置,语法:str.endswith(suffix[, start[, end]])

 

语法:

str.join(sequence)
  • sequence — 要连接的元素序列。

15、isalnum,检测字符串是否只由字母组成

>>> a = "WANG"
>>> a.isupper()
True
>>> a = "Wang"
>>> a.isupper()
False

描述:

把字符串中的 old(旧字符串) 替换成
new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

31、strip,用于移除字符串头尾指定的字符(默认为空格),语法:str.strip([chars])

>>> a = 'wang'
>>> a.ljust(10, '>')
'wang>>>>>>'

例如:

编程 7编程 8

>>> str = 'This is a example'
... nStr = str.replace('is', 'was')
... print(nStr)
Thwas was a example

>>> str = 'This is a example'
... nStr = str.replace('a', 'some', 1)
... print(nStr)
This is some example

View Code

>>> a = 'wang512'
>>> a.isalnum()
True
>>> a = 'wang'
>>> a.isalnum()
True
>>> a = '512'
>>> a.isalnum()
True
>>> a = 'wang 512'
>>> a.isalnum()
False
>>> a = 'today is a good day.'
>>> a.capitalize()
'Today is a good day.'

描述:

isalpha:检测字符串是否只由字母组成。

isdigit:检测字符串是否只由数字组成。

isalnum:检测字符串是否由字母和数字组成。

isspace:检测字符串是否只由空格组成。

str = "this is string example....wow!!!"
print(str.zfill(40))

2、 casefold,将所有字符小写,Unicode所有字符均适用

例如:

编程 9编程 10

>>> '-'.join(('a', 'b', 'c'))
'a-b-c'

View Code

>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
 '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__',
 '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__',
 '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format',
 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace',
 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition',
 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

In [1]: a = '123'

In [2]: a.
a.capitalize    a.endswith      a.index         a.isidentifier  a.istitle       a.lstrip        a.rindex        a.split         a.title
a.casefold      a.expandtabs    a.isalnum       a.islower       a.isupper       a.maketrans     a.rjust         a.splitlines    a.translate
a.center        a.find          a.isalpha       a.isnumeric     a.join          a.partition     a.rpartition    a.startswith    a.upper
a.count         a.format        a.isdecimal     a.isprintable   a.ljust         a.replace       a.rsplit        a.strip         a.zfill
a.encode        a.format_map    a.isdigit       a.isspace       a.lower         a.rfind         a.rstrip        a.swapcase 

10、endwith,判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数”start”与”end”为检索字符串的开始与结束位置,语法:str.endswith(suffix[, start[, end]])

语法:

str.count(sub, start= 0, end=len(string))
>>> a = 'wang'
>>> a.rjust(10, '<')
'<<<<<<wang'

13、index,检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和
end(结束) 范围,则检查是否包含在指定范围内,该方法与 python
find()方法一样,只不过如果str不存在 string中会报一个异常,语法:str.index(str,
beg=0, end=len(string))

 8、join

>>> a = "wang"
>>> a.islower()
True
>>> a = "Wang"
>>> a.islower()
False
>>> a
'wang wang wang wang'
>>> a.rsplit('a', 3)
['wang w', 'ng w', 'ng w', 'ng']

语法:

str.split(str="", num=string.count(str))
  • str —
    分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num — 分割次数。

str.splitlines([keepends])
  • keepends — 在输出结果里是否保留换行符(‘\r’, ‘\r\n’,
    \n’),默认为 False,不包含换行符,如果为 True,则保留换行符。

str.partition(str)
  • str– 指定的分隔符。

str.rpartition(str)

34、maketrans,用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标,语法:str.maketrans(intab, outtab)

28、split,通过指定分隔符对字符串进行切片,如果参数num
有指定值,则仅分隔 num 个子字符串,语法:str.split(str=””, num=string.count(str)).

1、strip、lstrip和rstrip

>>> a
'today is a good day.'
>>> a.startswith('today')
True
>>> a.startswith('day')
False
>>> a.startswith('day', 5)
False
>>> a.startswith('today', 5)
False
>>> a = "wang"
>>> a.islower()
True
>>> a = "Wang"
>>> a.islower()
False

语法:

str.ljust(width[, fillchar])
str.center(width[, fillchar])
str.rjust(width[, fillchar])
  • width — 字符串的总宽度。
  • fillchar — 填充字符。

11、expandtabs,把字符串中的 tab 符号(‘\t’)转为空格,tab
符号(‘\t’)默认的空格数是 8,语法:str.expandtabs(tabsize=8)

>>> a = 'wang'
>>> a.isalpha()
True
>>> a = '512'
>>> a.isalpha()
False

例如:

编程 11编程 12

>>> 'abc'.isalpha()
True

>>> '123'.isdigit()
True

>>> 'abc123'.isalnum()
True

>>> '   '.isspace()
True

View Code

 

一、查看字符串的内建函数

35、translate,根据参数table给出的表(包含 256 个字符)转换字符串的字符,
要过滤掉的字符放到 del 参数中,语法:str.translate(table[,
deletechars]);

例如:

1)移除单个字符或空白:

编程 13编程 14

>>> '  abc '.strip()
'abc'

>>> '  abc'.lstrip()
'abc'

>>> 'abc  '.rstrip()
'abc'

>>> 'abc'.strip('a')
'bc'

>>> 'abc'.lstrip('a')
'bc'

>>> 'abc'.rstrip('c')
'ab'

View
Code

2)移除一个字符串列表(是否会删除的前提是从字符串最开头和最结尾是不是包含要删除的字符,如果有就会继续处理,没有的话是不会删除中间的字符的):

编程 15编程 16

>>> 'abc@163.com'.strip('cawm')
'bc@163.co'

>>> 'abc@163.com'.lstrip('cawm')
'bc@163.com'

>>> 'abc@163.com'.rstrip('cawm')
'abc@163.co'

View
Code

str = "this is string example....wow!!!"
print(str.title())

1、capitalize,字符串的第一个字符大写

语法:

str.find(str, beg=0, end=len(string))

str.index(str, beg=0, end=len(string))
  • str — 指定检索的字符串
  • beg — 开始索引,默认为0。
  • end — 结束索引,默认为字符串的长度。
>>> a
'today is a good day.'
>>> a.find('a')
3
>>> a.find('a', 10)
17
>>> a.find('abc')
-1
>>> a = '12345'
>>> a.isnumeric()
True
>>> a = 'w123'
>>> a.isnumeric()
False

描述:

lower:将字符串中的大写字母转为小写字母。

upper:将字符串中的小写字母转为大写字母。

title:将所有单词首字母转为大写,其余字母均转为小写。

capitalize:将字符串的第一个字母转为大写,其他字母转为小写。

swapcase:将字符串做大小写字母转换(大写->小写,小写->大写)

>>> a
'wang wang wang wang'
>>> a.rsplit('a', 3)
['wang w', 'ng w', 'ng w', 'ng']
>>> b
'TODAY IS A GOOD DAY.'
>>> b.casefold()
'today is a good day.'

描述:

将序列中的元素以指定的字符连接生成一个新的字符串。

6、count,用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置,语法:str.count(sub,
start= 0,end=len(string))

>>> a = 'wang'
>>> a.rjust(10, '<')
'<<<<<<wang'

例如:

编程 17编程 18

>>> 'aBcDe'.upper()
'ABCDE'

>>> 'aBcDe'.lower()
'abcde'

>>> 'thIs is a exaMple'.title()
'This Is A Example'

>>> 'this is A example'.capitalize()
'This is a example'

>>> 'aBcDe'.swapcase()
'AbCdE'

View Code

3、lower,将所有字符小写,只适用ASCii

>>> a = 'ab c\n\nde fg\rkl\r\n'
>>> a.splitlines()
['ab c', '', 'de fg', 'kl']
>>> a.splitlines(False)
['ab c', '', 'de fg', 'kl']
>>> a.splitlines(True)
['ab c\n', '\n', 'de fg\r', 'kl\r\n']

描述:

统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

41、swapcase,用于对字符串的大小写字母进行转换。

23、isspace,检测字符串是否只由空格组成。

 3、find、index、rfind、rindex

>>> a = ['a', 'b', 'c', 'd']
>>> ','.join(a)
'a,b,c,d'

30、splitlines,按照行(‘\r’, ‘\r\n’,
\n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为
False,不包含换行符,如果为 True,则保留换行符,语法:str.splitlines([keepends])

例如:

编程 19编程 20

>>> '[www.example.com]'.ljust(30, '*')
'[www.example.com]*************'

>>> '[www.example.com]'.rjust(30, '*')
'*************[www.example.com]'

>>> '[www.example.com]'.center(30, '*')
'******[www.example.com]*******'

>>> '[www.example.com]'.center(4, '*')
'[www.example.com]'

View Code

>>> a
'today is a good day.'
>>> a.upper()
'TODAY IS A GOOD DAY.'
>>> a
'today is a good day.'
>>> a.center(40)
'          today is a good day.          '
>>> b
'TODAY IS A GOOD DAY.'
>>> b.casefold()
'today is a good day.'

注:两个字符串的长度必须相同,为一一对应的关系。

27、rjust,返回一个原字符串右对齐,并使用空格填充至长度 width
的新字符串。如果指定的长度小于字符串的长度则返回原字符串,语法:str.rjust(width[, fillchar])

str = "this is string example....wow!!!"
print(str.title())

26、ljust,返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串,语法:str.ljust(width[, fillchar])

>>> a = '12345'
>>> a.isdigit()
True
>>> a = 'wang'
>>> a.isdigit()
False

42、title,返回”标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见
istitle())。

>>> intab = "aeiou"
>>> outtab = "12345"
>>> trantab = str.maketrans(intab, outtab)
>>> s = 'abcdef'
>>> s.translate(trantab)
'1bcd2f'
>>> trantab
{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
>>> a = 'wang wang wang wang'
>>> a.split('a', 3)
['w', 'ng w', 'ng w', 'ng wang']

5、center,返回一个原字符串居中,并使用空格填充至长度 width
的新字符串,语法:str.center(width[, fillchar])

>>> a = '12345'
>>> a.isnumeric()
True
>>> a = 'w123'
>>> a.isnumeric()
False
>>> a = ['a', 'b', 'c', 'd']
>>> ','.join(a)
'a,b,c,d'

35、translate,根据参数table给出的表(包含 256 个字符)转换字符串的字符,
要过滤掉的字符放到 del 参数中,语法:str.translate(table[,
deletechars]);

>>> a
'today is a good day.'
>>> a.endswith('day.')
True
>>> a.endswith('today.')
False
>>> a.endswith('day.', 5)
True
>>> a = 'today is a good day.'
>>> a.capitalize()
'Today is a good day.'

11、expandtabs,把字符串中的 tab 符号(‘\t’)转为空格,tab
符号(‘\t’)默认的空格数是 8,语法:str.expandtabs(tabsize=8)

errors — 设置不同错误的处理方案。默认为
‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’,
‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过
codecs.register_error() 注册的任何值。

一、查看字符串的内建函数

5、center,返回一个原字符串居中,并使用空格填充至长度 width
的新字符串,语法:str.center(width[, fillchar])

二、常用的字符串内建函数

24、istitile,检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

str = "this is string example....wow!!!"
print(str.zfill(40))
>>> e = '   today is    a good day.     '
>>> e
'\ttoday is \ta good day.\t\t'
>>> e.expandtabs(4)
'    today is    a good day.     '

4、upper,将所有字符大写

str = "this is really a string example....wow!!!"
substr = "is"

print(str.rfind(substr))
print(str.rfind(substr, 0, 10))
print(str.rfind(substr, 10, 0))

print(str.find(substr))
print(str.find(substr, 0, 10))
print(str.find(substr, 10, 0))
>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
 '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__',
 '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__',
 '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format',
 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace',
 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition',
 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

In [1]: a = '123'

In [2]: a.
a.capitalize    a.endswith      a.index         a.isidentifier  a.istitle       a.lstrip        a.rindex        a.split         a.title
a.casefold      a.expandtabs    a.isalnum       a.islower       a.isupper       a.maketrans     a.rjust         a.splitlines    a.translate
a.center        a.find          a.isalpha       a.isnumeric     a.join          a.partition     a.rpartition    a.startswith    a.upper
a.count         a.format        a.isdecimal     a.isprintable   a.ljust         a.replace       a.rsplit        a.strip         a.zfill
a.encode        a.format_map    a.isdigit       a.isspace       a.lower         a.rfind         a.rstrip        a.swapcase 

 

15、isalnum,检测字符串是否只由字母组成

25、join,将序列中的元素以指定的字符连接生成一个新的字符串,语法:str.join(sequence)

>>> a
'today is a good day.'
>>> a.upper()
'TODAY IS A GOOD DAY.'
>>> intab = "aeiou"
>>> outtab = "12345"
>>> trantab = str.maketrans(intab, outtab)
>>> s = 'abcdef'
>>> s.translate(trantab)
'1bcd2f'
>>> trantab
{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}

29、rsplit

>>> a.isidentifier()
False
>>> a = 'wang'
>>> a.isidentifier()
True

43、zfill,指定长度的字符串,原字符串右对齐,前面填充0。语法:str.zfill(width)

>>> a = '12345'
>>> a.isdigit()
True
>>> a = 'wang'
>>> a.isdigit()
False

31、strip,用于移除字符串头尾指定的字符(默认为空格),语法:str.strip([chars])

str1 = "this is string example....wow!!!"
str2 = "is"

print(str1.rindex(str2))
print(str1.index(str2))

27、rjust,返回一个原字符串右对齐,并使用空格填充至长度 width
的新字符串。如果指定的长度小于字符串的长度则返回原字符串,语法:str.rjust(width[, fillchar])

39、rfind,字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。语法:str.rfind(str,
beg=0 end=len(string))

17、isdigit,检测字符串是否只由数字组成

19、islower,检测字符串是否由小写字母组成。

>>> a = 'wang512'
>>> a.isalnum()
True
>>> a = 'wang'
>>> a.isalnum()
True
>>> a = '512'
>>> a.isalnum()
True
>>> a = 'wang 512'
>>> a.isalnum()
False

28、split,通过指定分隔符对字符串进行切片,如果参数num
有指定值,则仅分隔 num 个子字符串,语法:str.split(str=””, num=string.count(str)).

39、rfind,字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。语法:str.rfind(str,
beg=0 end=len(string))

>>> c = '你好'
>>> c.encode(encoding='utf-8')
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> a = "http://www.baidu.com ://sina"
>>> a.partition('://')
('http', '://', 'www.baidu.com ://sina')
>>> a.rpartition('://')
('http://www.baidu.com ', '://', 'sina')

30、splitlines,按照行(‘\r’, ‘\r\n’,
\n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为
False,不包含换行符,如果为 True,则保留换行符,语法:str.splitlines([keepends])

40、rindex,返回子字符串 str
在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。语法:str.rindex(str,
beg=0 end=len(string))

36、partition,用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。语法:str.partition(str)

>>> e = '   today is    a good day.     '
>>> e
'\ttoday is \ta good day.\t\t'
>>> e.expandtabs(4)
'    today is    a good day.     '
>>> a = "WANG"
>>> a.isupper()
True
>>> a = "Wang"
>>> a.isupper()
False

37、rpartition

43、zfill,指定长度的字符串,原字符串右对齐,前面填充0。语法:str.zfill(width)

str = "this is string example....wow!!! this is really string"
print(str.replace("is", "was"))
print(str.replace("is", "was", 3))

22、isprintable,包含所有可打印字符的字符串。

25、join,将序列中的元素以指定的字符连接生成一个新的字符串,语法:str.join(sequence)

>>> a = '12345'
>>> a.isdecimal()
True
>>> a = 'wang'
>>> a.isdecimal()
False

42、title,返回”标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见
istitle())。

>>> b
'TODAY IS A GOOD DAY.'
>>> b.lower()
'today is a good day.'

20、isupper,检测字符串中所有的字母是否都为大写。

>>> a = "http://www.baidu.com ://sina"
>>> a.partition('://')
('http', '://', 'www.baidu.com ://sina')
>>> a.rpartition('://')
('http://www.baidu.com ', '://', 'sina')

16、isdecimal
,检查字符串是否只包含十进制字符。这种方法只存在于unicode对象

16、isdecimal
,检查字符串是否只包含十进制字符。这种方法只存在于unicode对象

32、rstrip,删除 string
字符串末尾的指定字符(默认为空格),语法:str.rstrip([chars])

1、capitalize,字符串的第一个字符大写

>>> a
'today is a good day.'
>>> a.find('a')
3
>>> a.find('a', 10)
17
>>> a.find('abc')
-1

23、isspace,检测字符串是否只由空格组成。

>>> a = 'wang wang wang wang'
>>> a.split('a', 3)
['w', 'ng w', 'ng w', 'ng wang']
str = "this is string example....wow!!! this is really string"
print(str.replace("is", "was"))
print(str.replace("is", "was", 3))

36、partition,用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。语法:str.partition(str)

14、isalnum,检测字符串是否由字母和数字组成

errors — 设置不同错误的处理方案。默认为
‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’,
‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过
codecs.register_error() 注册的任何值。

>>> a = 'ab c\n\nde fg\rkl\r\n'
>>> a.splitlines()
['ab c', '', 'de fg', 'kl']
>>> a.splitlines(False)
['ab c', '', 'de fg', 'kl']
>>> a.splitlines(True)
['ab c\n', '\n', 'de fg\r', 'kl\r\n']

12、find,检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和
end(结束)
范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1,语法:str.find(str,
beg=0, end=len(string))

8、decode,以 encoding 指定的编码格式解码字符串。默认编码为字符串编码,语法:str.decode(encoding=’UTF-8′,errors=’strict’)

3、lower,将所有字符小写,只适用ASCii

>>> a
'today is a good day.'
>>> a.index('a')
3
>>> a.index('a', 10)
17
>>> a.index('abc', 10)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ValueError: substring not found

26、ljust,返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串,语法:str.ljust(width[, fillchar])

18、isidentifier,检测字符串是否以字母开头

>>> a
'today is a good day.'
>>> a.index('a')
3
>>> a.index('a', 10)
17
>>> a.index('abc', 10)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ValueError: substring not found

二、常用的字符串内建函数

>>> a
'today is a good day.'
>>> a.startswith('today')
True
>>> a.startswith('day')
False
>>> a.startswith('day', 5)
False
>>> a.startswith('today', 5)
False

12、find,检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和
end(结束)
范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1,语法:str.find(str,
beg=0, end=len(string))

14、isalnum,检测字符串是否由字母和数字组成

>>> a
'today is a good day.'
>>> a.count('a')
3
>>> a.count('a', 5, -2)
2
>>> a
'today is a good day.'
>>> a.count('a')
3
>>> a.count('a', 5, -2)
2

4、upper,将所有字符大写

19、islower,检测字符串是否由小写字母组成。

2、 casefold,将所有字符小写,Unicode所有字符均适用

24、istitile,检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

>>> d
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> d.decode(encoding='utf-8')
'你好'
>>> c = '你好'
>>> c.encode(encoding='utf-8')
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> a
'today is a good day.'
>>> a.endswith('day.')
True
>>> a.endswith('today.')
False
>>> a.endswith('day.', 5)
True
>>> d
b'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> d.decode(encoding='utf-8')
'你好'

29、rsplit

7、encode,以 encoding 指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案,语法:str.encode(encoding=’UTF-8′,errors=’strict’)