9.1 字符串的声明
在Python中,字符串是用于存储和表示文本信息的字符序列。可以用多种方式创建字符串,从而在声明和操作它们时提供灵活性 (你应该已经知道字符串是不可变的)。
字符串声明的主要方法
- 单引号:
string
= '你好,朋友!' - 双引号:
string
= "你好,朋友!"
这两种方法是等价的,选择哪个取决于程序员的偏好以及字符串中出现的引号类型(以避免使用转义符)。
多行字符串
多行字符串使用三引号声明。可以是三单引号 (''')
或三双引号 (""")
。这种方式对于占用多行的文本很方便:
multiline_string = """第一行
第二行
第三行"""
字符转义
在Python中,字符串中的字符可以通过反斜杠 \
转义。这样可以插入特殊字符,比如新区行 \n
,制表符 \t
,或者是反斜杠本身 \\
。
escaped_string = "他说: \"你好,朋友!\""
我们将在后面几节详细讨论字符转义。
原始字符串
原始字符串 (raw string)
是禁用字符转义的字符串。它们用前缀 r
声明:
raw_string = r"这行中的 \n 不会被视作换行符."
字符串格式化
Python 提供了多种字符串格式化方法。其中最强大的方法是 f-字符串
,自Python 3.6起可用。它们允许在字符串中嵌入Python表达式:
name = "世界"
formatted_string = f"你好, {name}!"
字符串连接
可以通过 「+」
操作符或 join()
方法(用于更复杂的情况)将多个字符串连接起来:
greeting = "你好, " + "朋友!"
字符串的不可变性(immunity)
记住,在Python中字符串是不可变的。这意味着任何修改字符串的操作实际上都会创建一个新的字符串。
9.2 嵌套引号
在Python中,处理包含嵌套引号的字符串需要特别注意语法细节,以确保代码的正确性并避免语法错误。
不能随便在用引号包围的文本中写一个引号。例如,您写的代码是:
escaped_string = "他说: "你好,世界!"… "
而Python看到的是:
escaped_string = "他说: "你好,世界!"… "
它寻找的不是字符串中的最后一个引号,而是最接近的一个。因此,为了在文本中添加引号,需要花点心思。以下是一些用于在Python字符串中管理嵌套引号的方法和技巧:
使用不同类型的引号
Python允许使用单引号 (')
和双引号 (")
来定义字符串。这使得可以在一种引号中嵌套另一种引号:
quote = "他说, '你好,世界!'"
# 或者
quote = '他说, "你好,世界!"'
引号转义
当需要在字符串中使用相同的引号时,可以使用反斜杠 (\)
来转义引号:
quote = "他说,\"你好,世界!\" "
多行字符串
为了创建包含嵌套引号的多行字符串,可以使用三引号 (''' 或 """)
:
multiline_quote = """这是一个长篇引述,包含多种类型的引号: "双引号" 和 '单引号'。它跨越多行。"""
GO TO FULL VERSION