Python基础06 字符串

所有的标准序列操作(索引、切片、相乘、成员资格检查、长度、最大和最小值)都适用于字符串。

但字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。

 

字符串方法

字符串的很多方法是从模块string“继承”而来的,这里仅介绍一些最有用的。

 

1、center

 方法center通过在两边添加填充字符(默认为空格)让字符串居中。

>>> str = "Hello, Python!"
>>> str.center(20)
'   Hello, Python!   '
>>> str.center(20, "*")
'***Hello, Python!***'

 

2、find

方法find在字符串中查找子字符串。

如果找到则返回子字符串的第一个字符的索引,否则返回-1。

>>> str = "Hello, Python!"
>>> str.find('Hello')
0
>>> str.find('Python')
7
>>> str.find('python')
-1

 

可以指定搜索的起点和重点(都是可选参数)。

>>> str = "*** Hello, Python! ***"
>>> str.find('***', 1)
19
>>> str.find('***', 1, 19)
-1

注意:搜索范围包含起点,但并不包含重点。

 

3、join

join是一个非常重要的字符串方法,用于合并序列的元素。

>>> lst = ['1', '2', '3', '4', '5']
>>> sep = '+'
>>> sep.join(lst)
'1+2+3+4+5'

 

所合并序列的元素必须是字符串。

>>> lst = [1, 2, 3, 4, 5]
>>> sep.join(lst)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found

这里要注意序列是参数,而不是调用方。

 

4、split

split是一个非常重要的字符串方法,作用与join相反,用于将字符串拆分为序列。

>>> str = '1+2+3+4+5'
>>> str.split('+')
['1', '2', '3', '4', '5']

 

如果没有指定分隔符,将默认在单个或多个连续的空白字符(空格、制表符、换行符等)处进行拆分。

>>> str = '1 2 3 4 5'
>>> str.split()
['1', '2', '3', '4', '5']

 

5、strip

方法strip将字符串开头和末尾的空白或者指定字符删除,并返回删除后的结果。

>>> str = '  This is python.  '
>>> str.strip()
'This is python.'

 

也可以指定要删除哪些字符。

>>> str = '***  This is python.!!!  ***'
>>> str.strip(' *!')
'This is python.'

 

6、replace

方法replace将指定子字符串都替换为另一个字符串,并返回替换后的结果。

>>> str = "Hello, Python!"
>>> str.replace('Python', 'World')
'Hello, World!'

 

7、translate

方法translate与replace一样都能替换字符串的特定部分,但不同的是它只能进行单字符替换。

这个方法的优势在于能够同时替换多个字符,因此效率比replace高。

 

在使用translate前必须创建一个转换表。转换表指出了字符替换的对应关系。比如要把字符串中的所有'o'字符替换为'x'字符:

table = str.maketrans('o', 'x')

创建转换表后,就可将其用作方法translate的参数。

>>> s = 'Hello, Python!'
>>> table = str.maketrans('o', 'x')
>>> s.translate(table)
'Hellx, Pythxn!'

 

如果想同时替换'o'字符和'H'字符,那么可以这么操作:

>>> s = 'Hello, Python!'
>>> table = str.maketrans('Ho', 'Jx')
>>> s.translate(table)
'Jellx, Pythxn!'

 

调用方法maketrans时,还可提供可选的第三个参数,指定要将哪些字母删除。

>>> s = 'Hello, Python!'
>>> table = str.maketrans('Ho', 'Jx', 'l')
>>> s.translate(table)
'Jex, Pythxn!'

 

8、lower

方法lower返回字符串的小写版本。

'Hello, Python!'.lower()
'hello, python!'

同类操作:upper、title、swapcase、capitalize等。

 

9、字符串条件判断

string.isalnum()  判断字符串中的字符是否都是字母或数

string.isalpha()  判断字符串中的字符是否都是字母

string.isdigit()  判断字符串中的字符是否都是数字

string.isnumeric()  判断字符串中的所有字符是否都是数字字符

 

string.islower()  判断字符串中的所有字母是否都是小写的

string.isupper()  判断字符串中的所有字母是否都是大写的

string.isspace()  判断字符串中的字符是否都是空白字符

string.isprintable()  判断字符串中的字符是否都是可打印的

 

string.isdecimal()  判断字符串中的字符是否十进制数

string.isidentifier()  判断字符串是否可用作Python标识符

 

posted on 2020-03-06 15:31  麦克煎蛋  阅读(215)  评论(0编辑  收藏  举报