Python 字符串
- 字符串定义与表示:在 Python 中,字符串是字符序列,可用单引号或双引号创建,例如
"hello"
或'Python 编程'
。 - 字符串操作与特性:Python 字符串支持索引、切片、不可变性,提供多种方法如
upper()
和split()
,且支持转义序列来包含特殊字符。 - 字符串格式化:Python 的 f-字符串 (
f'{variable}'
) 提供了一种强大且简单的方式来格式化和嵌入变量,使打印和显示变量内容更加方便。
在计算机编程中,字符串是字符的序列。例如,"hello"
是包含字符序列 'h'
、'e'
、'l'
、'l'
和 'o'
的字符串。
我们使用单引号或双引号来表示 Python 中的字符串。例如,
# 使用双引号创建字符串
string1 = "Python 编程"
# 使用单引号创建字符串
string1 = 'Python 编程'
在这里,我们创建了一个名为 string1 的字符串变量。该变量用字符串 Python 编程
初始化。
示例:Python 字符串
# 创建字符串类型变量
name = "Python"
print(name)
message = "我爱 Python。"
print(message)
输出
Python
我爱 Python。
在上面的示例中,我们创建了字符串类型的变量:name 和 message,其值分别为 "Python"
和 "我爱 Python"
。
这里,我们使用了双引号来表示字符串,但我们也可以使用单引号。
在 Python 中访问字符串字符
我们可以通过三种方式访问字符串中的字符。
- 索引: 一种方法是将字符串视为列表,并使用索引值。例如,
greet = 'hello'
# 访问第一个索引元素
print(greet[1]) # "e"
- 负索引: 类似于列表,Python 允许对其字符串使用负索引。例如,
greet = 'hello'
# 访问倒数第四个元素
print(greet[-4]) # "e"
- 切片: 使用切片操作符冒号
:
来访问字符串中的字符范围。例如,
greet = 'Hello'
# 访问从第一个索引到第三个索引的字符
print(greet[1:4]) # "ell"
注意:如果我们尝试访问超出范围的索引或使用非整数的数字,我们将得到错误。
Python 字符串是不可变的
在 Python 中,字符串是不可变的。这意味着字符串的字符不能更改。例如,
message = 'Hola Amigos'
message[0] = 'H'
print(message)
输出
TypeError: 'str' 对象不支持项赋值
然而,我们可以将变量名分配给新字符串。例如,
message = 'Hola Amigos'
# 将新字符串分配给 message 变量
message = 'Hello Friends'
prints(message); # 打印 "Hello Friends"
Python 多行字符串
我们也可以在 Python 中创建多行字符串。为此,我们使用三个双引号 """
或三个单引号 '''
。例如,
# 多行字符串
message = """
永远不会放弃你
永远不会让你失望
"""
print(message)
输出
永远不会放弃你
永远不会让你失望
在上面的示例中,包围在三重引号内的任何内容都是一个多行字符串。
Python 字符串操作
有许多可以对字符串执行的操作,这使得它成为 Python 中最常用的数据类型之一。
1. 比较两个字符串
我们使用 ==
运算符来比较两个字符串。如果两个字符串相等,该运算符返回 True
。否则,它返回 False
。例如,
str1 = "你好,世界!"
str2 = "我爱 Python。"
str3 = "你好,世界!"
# 比较 str1 和 str2
print(str1 == str2)
# 比较 str1 和 str3
print(str1 == str3)
输出
False
True
``
`
在上面的例子中,
- str1 和 str2 不相等。因此,结果是 `False`。
- str1 和 str3 相等。因此,结果是 `True`。
### 2. 连接两个或多个字符串
在 Python 中,我们可以使用 `+` 运算符连接(串联)两个或更多的字符串。
```python
greet = "你好,"
name = "杰克"
# 使用 + 运算符
result = greet + name
print(result)
# 输出:你好,杰克
在上面的示例中,我们使用了 +
运算符来连接两个字符串:greet 和 name。
遍历 Python 字符串
我们可以使用for 循环遍历字符串。例如,
greet = 'Hello'
# 遍历 greet 字符串
for letter in greet:
print(letter)
输出
H
e
l
l
o
Python 字符串长度
在 Python 中,我们使用 len()
方法来找出字符串的长度。例如,
greet = 'Hello'
# 计算 greet 字符串的长度
print(len(greet))
# 输出:5
字符串成员测试
我们可以使用关键字 in
测试字符串中是否存在子字符串。
print('a' in 'program') # True
print('at' not in 'battle') # False
Python 字符串方法
除了上述提到的,Python 中还有各种字符串方法。以下是其中的一些方法:
方法 | 描述 |
---|---|
upper() | 将字符串转换为大写 |
lower() | 将字符串转换为小写 |
partition() | 返回一个元组 |
replace() | 替换字符串内的子字符串 |
find() | 返回子字符串首次出现的索引 |
rstrip() | 移除尾部字符 |
split() | 从左侧分割字符串 |
startswith() | 检查字符串是否以指定的字符串开头 |
isnumeric() | 检查字符串中的数字字符 |
index() | 返回子字符串的索引 |
Python 中的转义序列
转义序列用于转义字符串内的某些字符。
假设我们需要在字符串中同时包含双引号和单引号,
example = "他说,"什么在那里?""
print(example) # 报错
由于字符串由单引号或双引号表示,编译器会将 "他说,"
视为字符串。因此,上述代码会导致错误。
为了解决这个问题,我们在 Python 中使用转义字符 \
。
# 转义双引号
example = "他说,\"什么在那里?\""
# 转义单引号
example = '他说,"什么在那里?"'
print(example)
# 输出:他说,"什么在那里?"
以下是 Python 支持的所有转义序列列表。
转义序列 | 描述 |
---|---|
\\ | 反斜线 |
\' | 单引号 |
\" | 双引号 |
\a | ASCII 响铃 |
\b | ASCII 退格 |
\f | ASCII 换页 |
\n | ASCII 换行 |
\r | ASCII 回车 |
\t | ASCII 水平制表符 |
\v | ASCII 垂直制表符 |
\ooo | 具有八进制值 ooo 的字符 |
\xHH | 具有十六进制值 HH 的字符 |
Python 字符串格式化 (f-字符串)
Python f-字符串让打印值和变量变得非常简单。例如,
name = 'Cathy'
country = 'UK'
print(f'{name} 来自 {country}')
输出
Cathy 来自 UK
这里,f'{name} 来自 {country}'
是一个f-字符串。
这种新的格式化语法功能强大且易于使用。从现在开始,我们将使用 f-字符串来打印字符串和变量。