《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第6章 字符串操作】

文本是程序需要处理的最常见的数据格式。

1.  处理字符串

1)  双引号

如果字符串中只包含单引号,那么字符串以双引号开始, Python 就知道单引号是字符串的一部分,而不是表示字符串的结束。示例:

 
>>> 'This is Alice's cat'
SyntaxError: invalid syntax
>>> "This is Alice's cat"
"This is Alice's cat"

2)  转义字符

转义字符包含一个反斜杠(\),紧跟着是想要添加到字符串的字符。示例:

 
>>> 'This is Alice\'s cat'
"This is Alice's cat"
常见的转义字符如下图所示:

示例:

 
>>> print('This\nis\tAlice\'s \"cat\"')
This
is Alice's "cat"

3)  原始字符串

可以在字符串开始的引号前加上r,使它成为原始字符串。“原始字符串”忽略所有的转义字符,打印出字符串中所有的反斜杠。示例:

 
>>> print(r'This is Carol\'s cat')
This is Carol\'s cat

4)  用三重引号的多行字符串

在 Python 中,多行字符串的起止是 3 个单引号或 3 个双引号。“三重引号”之间的所有引号、制表符或换行等,都被认为是字符串的一部分。Python的代码库缩进规则不适用于多行字符串。示例:

 
print('''Dear Alice,
Eve's cat has been arrested for catnapping, cat burglary, and extortion.
Sincerely,
Bob''')

输出结果:

Dear Alice,

Eve's cat has been arrested for catnapping,cat burglary, and extortion.

Sincerely,

Bob

5)  多行注释

Python中使用#字符实现单行注释,而多行注释则可以使用三重引号来实现。示例:

 
def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')

输出结果:

>>> spam()
Hello!

6)  字符串下标和切片

字符串和列表一样,使用下标和切片。可以将字符串看成一个列表,字符串中的每个字符都是一个表项。示例:

 
>>> spam = "Hello World!"
>>> spam[0]
'H'
>>> spam[100]
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    spam[100]
IndexError: string index out of range
>>> spam[1:5]
'ello'
>>> spam[5:-20]
''

7)  字符串的 in 和 not in 操作符

像列表一样,in和not in可以用于判断某个字符串是否存在另一个字符串中。如果存在返回True,否则返回False(精确匹配,区分大小写)。示例:

 
>>> 'Hello' in 'Hello World'
True
>>> 'Hello' in 'He ll oW or ld'
False

2.  有用的字符串方法

1)  upper()、lower()、isupper()和islower()

upper()和 lower()字符串方法返回一个新字符串,其中原字符串的所有字母都被相应地转换为大写或小写。字符串中非字母字符保持不变。示例:

 
>>> spam = 'Hello World!'
>>> spam = spam.upper()
>>> spam
'HELLO WORLD!'
>>> spam = spam.lower()
>>> spam
'hello world!'

如果字符串至少有一个字母,并且所有字母都是大写或小写,isupper()和islower()方法就会相应地返回布尔值 True。否则,该方法返回 False。示例:

 
>>> print('Hello World!'.isupper())
False
>>> print('HELLO WORLD!'.isupper())
True
>>> print(''.isupper())
False

2)  isX 字符串方法

下面是一些常用的 isX 字符串方法:

 isalpha()返回 True,如果字符串只包含字母,并且非空;

 isalnum()返回 True,如果字符串只包含字母和数字,并且非空;

 isdecimal()返回True,如果字符串只包含整数字符,并且非空;

 isspace()返回 True,如果字符串只包含空格、制表符和换行,并且非空;

 istitle()返回True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词。

示例:

 
>>> 'hello'.isalpha()
True
>>> 'hello123'.isalpha()
False
>>> 'hello123'.isalnum()
True
>>> 'hello'.isalnum()
True
>>> '123'.isdecimal()
True
>>> ' '.isspace()
True
>>> 'This Is Title Case'.istitle()
True
>>> 'This Is Title Case 123'.istitle()
True
>>> 'This Is not Title Case'.istitle()
False
>>> 'This Is NOT Title Case Either'.istitle()
False

3)  字符串方法 startswith()和 endswith()

startswith()和 endswith()方法返回 True,如果它们所调用的字符串以该方法传入的字符串开始或结束。否则,方法返回False。示例:

 
>>> 'Hello world!'.startswith('Hello')
True
>>> 'Hello world!'.endswith('world!')
True
>>> 'abc123'.startswith('abcdef')
False
>>> 'abc123'.endswith('12')
False

4)  字符串方法 join()和 split()

如果有一个字符串列表,需要将它们连接成一个单独的字符串,那么join()方法就很有用。 调用join()方法的字符串被插入到列表参数中每个字符串的中间。示例:

>>> ', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
>>> ' '.join(['My', 'name', 'is', 'Simon'])
'My name is Simon'
>>> 'ABC'.join(['My', 'name', 'is', 'Simon'])
'MyABCnameABCisABCSimon'

split()方法和join()方法正好相反。它针对一个字符串调用,返回一个字符串列表。如果split()方法中什么参数都不传,那么按照空白符(如空格,制表符或换行符)进行切割。也可以向split()传入一个参数,按照指定的参数进行切割。示例:

>>> 'My name is Simon!'.split()
['My', 'name', 'is', 'Simon!']
>>> 'My name is Simon!'.split('m')
['My na', 'e isSi', 'on!']

5)  用 rjust()、ljust()和 center()方法对齐文本

rjust()和ljust()方法返回调用他们的字符串的填充版本。第一个参数是一个必填整数,表示填充至长度n。如果指定的长度小于字符串的长度则返回原字符串。,rjust()表示向右对齐,ljust()表示向左对齐。rjust()和 ljust()方法的第二个可选参数将指定一个填充字符,取代空格字符。示例:

>>> 'Hello'.rjust(20,'*')
'***************Hello'
>>> 'Hello'.ljust(20,'*')
'Hello***************'
>>> 'Hello'.rjust(20)
'               Hello'

center()与rjust()和ljust()类似,但是表示文本居中。示例:

>>> 'Hello'.center(20)
'      Hello        '
>>> 'Hello'.center(20,'*')
'*******Hello********'

6)  用strip()、rstrip()和lstrip()删除字符

strip()、rstrip()和lstrip()分别表示删除开头和末尾,删除右边,删除左边的空白字符(空格,制表符和换行符)。

>>> spam = ' Hello World! '
>>> spam.strip()
'Hello World!'
>>> spam.rstrip()
' Hello World!'
>>> spam.lstrip()
'Hello World! '

这三个方法有一个可选的字符参数,指定哪些字符应该删除。可选参数中字符的顺序并不重要。

>>> spam = 'SpamSpamBaconSpamEggsSpamSpam'
>>> spam.strip('ampS')
'BaconSpamEggs'

7)  用 pyperclip 模块拷贝粘贴字符串

pyperclip 模块有 copy()和 paste()函数,可以向计算机的剪贴板发送文本,或从它接收文本。将程序的输出发送到剪贴板,使它很容易粘贴到邮件、文字处理程序或其他软件中。pyperclip 模块不是 Python 自带的,需安装。

使用pip安装pyperclip模块的安装:

安装成功后该模块一般会被放置在:

python安装目录下的…\Lib\site-packages\(以下以自己电脑为例)

 代码示例:

>>> import pyperclip
>>> pyperclip.copy('HelloWorld!')
>>> pyperclip.paste()
'Hello World!'



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值