关于《python编程快速上手-让繁琐工作自动化》的学习笔记
1.处理字符串
- 字符串字面量
输入字符串值:以单引号开始和结束 - 双引号
字符串可以用双引号开始和结束,这样可以在字符串中使用单引号字符;但是如果字符串中既要使用单引号又要使用双引号,就要使用转义字符
>>>spam="That is Alice's cat"
- 转义字符
转义字符包含一个倒斜杠(\)和想要添加到字符串中的字符
转义字符 | 打印为 |
---|---|
\’ | 单引号 |
\’’ | 双引号 |
\t | 制表符 |
\n | 换行符 |
\\ | 倒斜杠 |
>>>print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
- 原始字符串
在字符串开始的引号前加上r,使之成为原始字符串。原始字符串会忽略所有的转义字符,打印出字符串中所有的倒斜杠(此时相当于倒斜杠是字符串的一部分)
>>>print(r'That is Carol\'s cat.')
That is Carol\'s cat.
- 用三重引号的多行字符串
多行字符串的起止是3个单引号或双引号。“三重引号”之间的所有引号、制表符或换行都被认为是字符串的一部分。python的代码块缩进规则不适用于多行字符串
print('''Dear Alice,
How are you?
Sincerely,
Bob''')
#输出:
Dear Alice,
How are you?
Sincerely,
Bob
- 多行注释
#表示这一行是注释,多行字符串也常常用于多行注释
"""
This is a test
Written by someone
"""
- 字符串下标和切片
字符串像列表一样,使用下标和切片 - 字符串的in和not in操作符
使用in和not in连接两个字符串得到的表达式,将求值为布尔值True或Flase
>>>'hello' in 'hello world'
True
>>>'HELLO' in 'hello world'
Flase
2.有用的字符串方法
- 字符串方法upper()、lower()、isupper()和islpwer()
- upper()和lower()字符串方法返回一个新字符串,其中原有字符串分所有字母都被相应的转换为大写或小写(这样本身并没有改变字符串本身而是返回一个新字符串)
>>>spam='hello world!' >>>spam=spam.upper() >>>spam 'HELLO WORLD!' >>>spam=spam.lower() >>>spam 'hello world!'
- 如果字符串至少有一个字母,并且所有字母都是大写或小写,isupper()和islower()方法会相应地返回布尔值True,否则返回Flase
>>>spam='hello world' >>>spam.islower() True >>>'abc123'.islower() True >>>'123'.islower() Flase
- isX字符串方法
- isalpha()返回True(如果字符串只包含字母并且非空)
- isalnum()返回True(如果字符串只包含字母和数字并且非空)
- isdecimal()返回True(如果字符串只包含数字字符并且非空)
- isspace()返回True(如果字符串只包含空格、制表符和换行并且非空)
- istitle()返回True(如果字符串只包含以大写字母开头、后面都是小写字母的单词或句子)
- 字符串方法startswith()和endswith()
startswith()和endswith()方法返回True,如果它们所调用的字符串以该方法传入的字符串开始或结束;否则返回Flase
>>>'hello world!'.startswith('hello')
True
>>>hello world!'.startswith('world!')
Flase
- 字符串方法join()和split()
- join()方法将一个字符串列表连接起来使之成为一个单独的字符串(join()方法在一个字符串上调用,参数是一个字符串列表,返回一个由传入的列表中每个字符串连接而成的字符串)
调用join()方法的字符串将会被插入到列表参数中每个字符串的中间,返回相应的字符串>>>' '.join(['hello','world','!']) 'hello world !'
- split()将字符串分割为一个字符串,返回一个字符串列表(默认情况下,按照各种空白字符分割,诸如空格、制表符或换行符;也可以向split()方法传入一个分割字符串,使之按照指定的字符串分割)
>>>'hello world !'.split() ['hello','world','!'] >>>'hello123world123!'.split('123') ['hello','world','!'] >>>spam='''Dear Alice, how are you ? I'm fine ! Thank you!! Sincerely Bob And you ?''' >>> spam.split('\n') ['Dear Alice,', 'how are you ?', "I'm fine !", 'Thank you!!', 'Sincerely', 'Bob', 'And you ?']
- 使用rjust()、ljust()和center()方法对齐文本
- rjust()、ljust()字符串方法返回调用它们的字符串的填充版本,通过插入空格来对齐文本(它们的第一个参数是一个整数长度,用于对齐字符串;第二个可选参数将制定一个填充字符,取代空格字符)
>>>'hello'.ljust(10) 'hello ' >>>'hello'.rjust(10) ' hello' >>> 'hello'.rjust(10,'*') '*****hello' >>> 'hello'.ljust(10,'*') 'hello*****'
- center()字符串方法使文本居中
>>> 'hello'.center(20) ' hello '
- 使用strip()、rstrip()和lstrip()删除空白字符
- strip()字符串方法返回删掉原来字符串两边的空白字符(传入可选的字符串参数,指定两边的哪些字符应该删除)
- rstrip()和lstrip()方法将返回相应地删除了左边或右边的空白字符
>>> abc=' hello world! ' >>> abc.strip() 'hello world!' >>> abc.lstrip() 'hello world! ' >>> abc.rstrip() ' hello world!' >>> sa='abcdef1234abcdloveabcd' >>> sa.strip('abcd') 'ef1234abcdlove'
- 使用pyperclip模块拷贝粘贴字符串
copy()可以向计算机的剪切板发送文本即复制文本到剪切板;paste()可以从计算机的剪切板接受文本即从剪切板粘贴文本
>>>import pyperclip
>>>pyperclip.copy('hello world!')
>>>pyperclip.paste()
'hello world!'