《Python编程快速上手》6、通过试验了解进阶的字符串操作
[复制链接]
我们已经对字符串进行简单的操作例如+或者*,接下来我们要对字符串进行进阶操作学习,例如可以从字符串中提取部分字符串,添加或删除空白字符,将字母转换成小写或大写,检查字符串的格式是否正确。
在 Python 中输入字符串值相当简单的:以单引号开始和结束。但是如何才能在字符串内使用单引号呢?输入 'That is Alice's cat.' 是不行的,因为 Python 认为这个字符串在 Alice 之后就结束了,剩下的(s cat.')是无效的 Python 代码。实现的方法有以下几种:
方法一:字符串可以用双引号开始和结束,就像用单引号一样。使用双引号的一个好处,就是字符串中可以使用单引号字符。
例如spam = "That is Alice's cat."
因为字符串以双引号开始,所以 Python 知道单引号是字符串的一部分,而不是表示字符串的结束。
方法二:如果在字符串中既需要使用单引号又需要使用双引号,通过转义字符实现。例如,单引号的转义字符是 \ 。还有其他的转义字符如下:
如果在引号前面加r,则字符串中的转义字符全部失效,变成纯粹的原始字符。在 Python 中,多行字符串的起止是 3 个单引号或 3 个双引号。“三重引号”之间的所有引号、制表符或换行,都被认为是字符串的一部分。
在列表学习中我们了解到字符串可以被看成“列表”进行处理,只不过字符串是不可变,可以通过in或者not in进行比较。字符串可以用到哪些方法呢?
upper() 和 lower() :该方法返回一个新字符串,其中原字符串的所有字母都被相应地转换为大写或小写。字符串中非字母字符保持不变;
isupper() 和 islower() :用于判断大小写,全部一直会相应地返回布尔值 True。否则,该方法返回 False。
isalpha() :返回 True,如果字符串只包含字母,并且非空;
isalnum() :返回 True,如果字符串只包含字母和数字,并且非空;
isdecimal() :返回 True,如果字符串只包含数字字符,并且非空;
isspace() :返回 True,如果字符串只包含空格、制表符和换行,并且非空;
istitle() :返回 True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词。
startswith() 和 endswith() :返回 True,如果它们所调用的字符串以该方法传入的字符串开始或结束。否则,方法返回 False。
join() :在一个字符串上调用,参数是一个字符串列表,返回一个字符串。返回的字符串由传入的列表中每个字符串连接而成。
split():针对一个字符串调用,返回一个字符串列表;
例如:
>>> ', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
>>> ' '.join(['My', 'name', 'is', 'Simon'])
'My name is Simon'
>>> 'ABC'.join(['My', 'name', 'is', 'Simon'])
'MyABCnameABCisABCSimon'
>>> 'My name is Simon'.split()
['My', 'name', 'is', 'Simon']
>>> 'MyABCnameABCisABCSimon'.split('ABC')
['My', 'name', 'is', 'Simon']
>>> 'My name is Simon'.split('m')
['My na', 'e is Si', 'on']
注意:join() 和split()默认是空格,可以通过传入指定字符串进行合并或者分割。
rjust() 和 ljust() 、center():返回调用它们的字符串的填充版本(右对齐和左对齐、中心对齐),通过插入空格来对齐文本。第一个参数为长度,第二个参数为指定填充字符(可以省略);
strip() :返回一个新的字符串,它的开头或末尾都没有空白字符。
lstrip() 和 rstrip(): 返回一个新的字符串,将相应删除左边或右边的空白字符。
pyperclip 模块有 copy() 和 paste() 函数,可以向计算机的剪贴板发送文本,或从它接收文本。将程序的输出发送到剪贴板,使它很容易粘贴到邮件、文字处理程序或其他软件中。pyperclip 模块不是 Python 自带的,需要安装:
|