跳到主要内容

Python 字符串

提示
  1. 字符串定义与表示:在 Python 中,字符串是字符序列,可用单引号或双引号创建,例如 "hello"'Python 编程'
  2. 字符串操作与特性:Python 字符串支持索引、切片、不可变性,提供多种方法如 upper()split(),且支持转义序列来包含特殊字符。
  3. 字符串格式化: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 支持的所有转义序列列表。

转义序列描述
\\反斜线
\'单引号
\"双引号
\aASCII 响铃
\bASCII 退格
\fASCII 换页
\nASCII 换行
\rASCII 回车
\tASCII 水平制表符
\vASCII 垂直制表符
\ooo具有八进制值 ooo 的字符
\xHH具有十六进制值 HH 的字符

Python 字符串格式化 (f-字符串)

Python f-字符串让打印值和变量变得非常简单。例如,

name = 'Cathy'
country = 'UK'

print(f'{name} 来自 {country}')

输出

Cathy 来自 UK

这里,f'{name} 来自 {country}' 是一个f-字符串

这种新的格式化语法功能强大且易于使用。从现在开始,我们将使用 f-字符串来打印字符串和变量。