跳至内容

Python 字符串

在计算机编程中,字符串是一个字符的序列。例如, "w3query"是一个字符串,包含 'w' '3' 'q' 'u', 'e' 'r' 'y' 7个字符。

在Python中,用单引号或双引号来表示字符串。

例如:Python 字符串表示

python
# 单引号创建字符串
singleQuoteStr = 'w3查询网'
# 双引号创建字符串
doubleQuoteStr = "w3query"

print(singleQuoteStr)
print(doubleQuoteStr)


# 输出:
# w3查询网
# w3query
# 单引号创建字符串
singleQuoteStr = 'w3查询网'
# 双引号创建字符串
doubleQuoteStr = "w3query"

print(singleQuoteStr)
print(doubleQuoteStr)


# 输出:
# w3查询网
# w3query

这里,我们分别使用单引号和双引号创建了两个字符串,在Python中,这两种方式没有区别。

读取字符串

在Python中,有三种读取字符串的方式:索引 Index, 负索引 Negative Index, 截取 slice

1. 索引 Index

字符串可以作为一个字符的列表 List,因此可以使用索引来读取。

python
sitename = 'w3query.com'

# 读取索引1的元素
print(sitename[1])


# 输出:
# 3
sitename = 'w3query.com'

# 读取索引1的元素
print(sitename[1])


# 输出:
# 3

注意,字符串的索引值是从0开始

2. 负索引 Negative Index

和Python 列表List 类似,字符串也支持负索引访问。

python
sitename = 'w3query.com'

# 读取倒数第3个元素
print(sitename[-3])


# 输出:
# c
sitename = 'w3query.com'

# 读取倒数第3个元素
print(sitename[-3])


# 输出:
# c

注意,负索引是从-1开始的

3. 截取 Slice

Python可以通过截取操作符 : 读取一个字符区间。

python
sitename = "w3query.com"

# 读取索引2到索引7的字符区间。
print(sitename[2:7])
sitename = "w3query.com"

# 读取索引2到索引7的字符区间。
print(sitename[2:7])

注意:如果访问索引超出了可访问的范围,程序将会报错。

字符串不变性

Python中,字符串是不变的。也就是说字符串的字符序列不可以更改。

例如:字符串不可改变

python
sitename = 'w3query.com'
# 修改索引1的字符
sitename[1] = '4'
print(sitename)


# 输出:
# TypeError: 'str' object does not support item assignment
sitename = 'w3query.com'
# 修改索引1的字符
sitename[1] = '4'
print(sitename)


# 输出:
# TypeError: 'str' object does not support item assignment

如果,要修改字符串内容,可以给字符串变量重新赋一个新值,而不是修改原字符串的部分内容。

python
sitename = 'w3query.com'
# 给字符串变量重新赋值
sitename = 'w4query.com'
print(sitename)


# 输出:
# w4query.com
sitename = 'w3query.com'
# 给字符串变量重新赋值
sitename = 'w4query.com'
print(sitename)


# 输出:
# w4query.com

多行字符串

Python中,可以使用三个引号(单引号或双引号)来创建一个多行字符串。

python
slogan = """
w3query.com
w3查询网
"""
print(slogan)


# 输出:
# w3query.com
# w3查询网
slogan = """
w3query.com
w3查询网
"""
print(slogan)


# 输出:
# w3query.com
# w3查询网

字符串操作符

1. 字符串比较

我们可以使用 == 操作符来比较两个字符串。如果两个字符串相等,返回True;否则返回False。

python
site1 = 'w3query.com'
site2 = '3wquery.com'
site3 = 'w3query.com'

print(site1 == site2)
print(site1 == site3)


# 输出:
# False
# True
site1 = 'w3query.com'
site2 = '3wquery.com'
site3 = 'w3query.com'

print(site1 == site2)
print(site1 == site3)


# 输出:
# False
# True

2. 字符串拼接

Python中,可以使用 + 操作符完成多个字符串的拼接。

python
protocol = 'www.'
domain = 'w3query.com'
# 拼接操作
sitename = protocol + domain
print(sitename)


# 输出:
# www.w3query.com
protocol = 'www.'
domain = 'w3query.com'
# 拼接操作
sitename = protocol + domain
print(sitename)


# 输出:
# www.w3query.com

字符串遍历

Python中,可以使用 for循环 遍历字符串。

python
site = 'w3query'

for letter in site:
    print(letter)


# 输出:
# w
# 3
# q
# u
# e
# y
site = 'w3query'

for letter in site:
    print(letter)


# 输出:
# w
# 3
# q
# u
# e
# y

字符串长度

Python中,使用 len() 方法获取字符串的长度。

python
site = 'w3query'
print(len(site))


# 输出:
# 7
site = 'w3query'
print(len(site))


# 输出:
# 7

字符串查找

我们可以使用关键字 in 或者 not in 查找是否出现在字符串中。

python
print('w4' in 'w3query.com')
print('w4' not in 'w3query.com')
print('com' in 'w3query.com')


# 输出:
# False
# True
# True
print('w4' in 'w3query.com')
print('w4' not in 'w3query.com')
print('com' in 'w3query.com')


# 输出:
# False
# True
# True

字符串方法

除了上面重点介绍的方法外,Python提供了丰富的字符串方法。

方法清单

方法名描述
upper()字符串转为大写
lower()字符串转为小写
partition()返回一个元组
replace()替换子串
find()查找子串首次出现的索引
rstrip()移除尾部字符串
split()从左侧分割字符串
startswith()判断字符串是否以某字符串开始
isnumeric()判断是否为数字字符串
index()返回查找子串的索引位置

字符串转义

转义序列用于对字符串内特定字符进行转义处理。比如,如果想在字符串中包含引号,就需要转义处理。

Python中的转义字符是右斜杠 \.

python
# 转义双引号
escapeQuote = "w3query: \"hello\""
print(escapeQuote)


# 输出:
# w3query: "hello"
# 转义双引号
escapeQuote = "w3query: \"hello\""
print(escapeQuote)


# 输出:
# w3query: "hello"

转义列表

转义字符描述
\右斜杠
'单引号
"双引号
\aASCII Bell
\bASCII 退格
\fASCII Formfeed
\nASCII Linefeed
\rASCII Carriage Return
\tASCII 水平 Tab
\vASCII 垂直 Tab
\oOO八进制数值
\xHH十六进制数值

字符串格式化

Python中,使用f-Strings 格式化变量和值非常方便。

python
cnname = 'w3查询网'
enname = 'w3query.com'

print(f'{cnname}的英文名是{enname}')


# 输出:
# w3查询网的英文名是w3query.com
cnname = 'w3查询网'
enname = 'w3query.com'

print(f'{cnname}的英文名是{enname}')


# 输出:
# w3查询网的英文名是w3query.com

这里,f''是一个功能强大的格式化语法。建议常用。