操作字符串

转义字符

转义字符是通过键入反斜杠 \ 后跟要插入的字符来创建的。

转义字符打印为
\'单引号
\"双引号
\t制表符
\n换行符(换行)
\\反斜杠
\b退格键
\ooo八进制值
\r回车
# 转义字符:使用反斜杠插入特殊字符
# \n = 换行,\' = 单引号
print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.

原始字符串

原始字符串完全忽略所有转义字符,并打印字符串中出现的任何反斜杠。

# 原始字符串(r 前缀):将反斜杠视为字面字符
print(r"Hello there!\nHow are you?\nI\'m doing fine.")  # \n 按字面意思打印
Hello there!\nHow are you?\nI\'m doing fine.

原始字符串主要用于 正则表达式 定义。

测验

登录后即可答题并追踪学习进度

Python 中以 r 为前缀的原始字符串的作用是什么?
A. 将所有字符转换为大写
B. 将反斜杠视为字面字符,忽略转义序列
C. 移除所有空格
D. 反转字符串

多行字符串

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

字符串的索引和切片

H   e   l   l   o       w   o   r   l   d    !
0   1   2   3   4   5   6   7   8   9   10   11

索引

# 字符串索引:通过位置(从 0 开始)访问字符
spam = 'Hello world!'

spam[0]  # 返回第一个字符:'H'
'H'
spam[4]
'o'
spam[-1]
'!'

切片

# 字符串切片:使用 [start:end] 语法提取子字符串
spam = 'Hello world!'

spam[0:5]  # 返回索引 0 到 4 的字符:'Hello'
'Hello'
spam[:5]
'Hello'
spam[6:]
'world!'
spam[6:-1]
'world'
spam[:-1]
'Hello world'
spam[::-1]
'!dlrow olleH'
测验

登录后即可答题并追踪学习进度

spam[::-1] 对字符串做什么?
A. 返回第一个字符
B. 返回最后一个字符
C. 反转字符串
D. 移除所有字符
fizz = spam[0:5]
fizz
'Hello'

in 和 not in 运算符

'Hello' in 'Hello World'
True
'Hello' in 'Hello'
True
'HELLO' in 'Hello World'
False
'' in 'spam'
True
'cats' not in 'cats and dogs'
False

upper(), lower() 和 title()

将字符串转换为大写、小写和标题大小写:

greet = 'Hello world!'
greet.upper()
'HELLO WORLD!'
greet.lower()
'hello world!'
greet.title()
'Hello World!'

isupper() 和 islower() 方法

评估字符串是大写还是小写后返回 TrueFalse

spam = 'Hello world!'
spam.islower()
False
spam.isupper()
False
'HELLO'.isupper()
True
'abc12345'.islower()
True
'12345'.islower()
False
'12345'.isupper()
False

isX 字符串方法

方法描述
isalpha()如果字符串仅由字母组成,则返回 True
isalnum()如果字符串仅由字母和数字组成,则返回 True
isdecimal()如果字符串仅由数字组成,则返回 True
isspace()如果字符串仅由空格、制表符和换行符组成,则返回 True
istitle()如果字符串仅由以大写字母开头后跟仅小写字符的单词组成,则返回 True

startswith() 和 endswith()

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

登录后即可答题并追踪学习进度

startswith() 返回什么?
A. 如果字符串以指定的子字符串开头,则返回 True,否则返回 False
B. 匹配开头的子字符串
C. 子字符串开始的索引
D. 一个不带前缀的新字符串

join() 和 split()

join()

join() 方法接受可迭代对象(如 列表字典元组集合)中的所有项,并将它们连接成一个字符串。您也可以指定一个分隔符。

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

split()

split() 方法将一个 string 分割成一个 list。默认情况下,它使用空格来分隔各项,但您也可以设置另一个选择的字符:

'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']
' My  name is  Simon'.split()
['My', 'name', 'is', 'Simon']
' My  name is  Simon'.split(' ')
['', 'My', '', 'name', 'is', '', 'Simon']
测验

登录后即可答题并追踪学习进度

对字符串调用 split() 会返回什么?
A. 一个字符串
B. 一个字符串列表
C. 一个字符串元组
D. 一个字典

使用 rjust(), ljust() 和 center() 进行文本对齐

'Hello'.rjust(10)
'     Hello'
'Hello'.rjust(20)
'               Hello'
'Hello World'.rjust(20)
'         Hello World'
'Hello'.ljust(10)
'Hello     '
'Hello'.center(20)
'       Hello       '

rjust()ljust() 的可选第二个参数将指定一个除空格字符外的填充字符:

'Hello'.rjust(20, '*')
'***************Hello'
'Hello'.ljust(20, '-')
'Hello---------------'
'Hello'.center(20, '=')
'=======Hello========'

使用 strip(), rstrip() 和 lstrip() 移除空格

spam = '    Hello World     '
spam.strip()
'Hello World'
spam.lstrip()
'Hello World     '
spam.rstrip()
'    Hello World'
spam = 'SpamSpamBaconSpamEggsSpamSpam'
spam.strip('ampS')
'BaconSpamEggs'

Count 方法

计算给定字符或子字符串在应用它的字符串中出现的次数。可以可选地提供起始和结束索引。

sentence = 'one sheep two sheep three sheep four'
sentence.count('sheep')
3
sentence.count('e')
9
# 返回 'one sh' 之后 e 的计数,即从字符串开头算起的第 6 个字符之后
sentence.count('e', 6)
8
sentence.count('e', 7)
7

Replace 方法

替换给定子字符串的所有出现,替换为另一个子字符串。可以可选地提供第三个参数来限制替换次数。返回一个新字符串。

text = "Hello, world!"
text.replace("world", "planet")
'Hello, planet!'
fruits = "apple, banana, cherry, apple"
fruits.replace("apple", "orange", 1)
'orange, banana, cherry, apple'
sentence = "I like apples, Apples are my favorite fruit"
sentence.replace("apples", "oranges")
'I like oranges, Apples are my favorite fruit'
测验

登录后即可答题并追踪学习进度

replace() 方法返回什么?
A. 修改原始字符串
B. 返回 None
C. 返回一个已进行替换的新字符串
D. 返回一个被替换字符串的列表

相关链接