由于字符串通常由书面文本组成,所以在许多情况下,我们可能希望更好地控制字符串的外观,以通过标点、换行和缩进使其对人类更易读。
在本教程中,我们将介绍一些使用 Python 字符串的方法,以确保所有输出文本都正确格式化。
让我们首先区分字符串字面量和字符串值。字符串字面量是计算机程序源代码中的内容,包括引号。字符串值是在调用 print()
函数并运行程序时在终端窗口中看到的内容。
在“Hello, World!”程序中,字符串字面量是"Hello, World!"
,而字符串值是没有引号的Hello, World!
。字符串值是我们运行 Python 程序时在终端窗口中看到的输出。
但有些字符串值可能需要包含引号,比如当我们引用来源时。由于字符串字面量和字符串值不相等,通常需要对字符串字面量进行附加格式设置,以确保字符串值以我们期望的方式显示。
因为我们可以在 Python 中使用单引号或双引号,所以我们也可以通过在单引号括起的字符串中使用双引号来嵌入引号:
'Sammy says, "Hello!"'
或者,在双引号括起的字符串中使用所有格撇号:
"Sammy's balloon is red."
通过组合单引号和双引号的方式,我们可以控制字符串中引号和撇号的显示方式。
将字符串打印成多行可以使文本对人类更易读。通过多行,可以将字符串组合成干净有序的文本,格式化为信件,或用于保持诗歌或歌词的换行。
要创建跨足多行的字符串,使用三个单引号 '''
或三个双引号 """
将字符串括起来。
'''
This string is on
multiple lines
within three single
quotes on either side.
'''
"""
This string is on
multiple lines
within three double
quotes on either side.
"""
使用三引号,您可以将字符串打印成多行,以使文本,尤其是较长的文本,更易读。
格式化字符串的另一种方法是使用转义字符。转义字符都以反斜杠键(\
)开始,与字符串中的另一个字符结合使用,以某种方式格式化给定的字符串。
下面是几个常见转义字符的列表:
转义字符 | 格式化方式 |
---|---|
\ | 多行字符串中的换行符 |
\\ | 反斜杠 |
’ | 撇号或单引号 |
" | 双引号 |
\n | 换行 |
\t | 制表符(水平缩进) |
让我们使用转义字符将上述引号示例中的引号添加到字符串中,但这次我们将使用双引号:
print("Sammy says, \"Hello!\"")
Sammy says, "Hello!"
通过使用转义字符 \"
,我们能够使用双引号括起包含在双引号之间的文本的字符串。
同样,我们可以使用转义字符 \'
将撇号添加到在单引号中括起的字符串中:
print('Sammy\'s balloon is red.')
Sammy's balloon is red.
因为我们现在正在使用转义字符,所以我们可以在使用单引号的字符串中包含撇号。
当我们像上面那样使用三引号时,我们会发现在打印字符串时顶部和底部有一个空格。我们可以通过在字符串的顶部使用 \
转义键,并在字符串的末尾再次使用 \
转义键,同时保持程序内的文本非常易读,来删除这些空格。
"""\
This multi-line string
has no space at the
top or the bottom
when it prints.\
"""
同样,我们可以使用 \n
转义字符在不按 enter
或 return
键的情况下断开行:
print("This string\nspans multiple\nlines.")
[secondary_label 输出]
This string
spans multiple
lines.
我们也可以结合使用转义字符。让我们打印一个多行字符串,并为一个项目化的列表添加制表符间距,例如:
print("1.\tShark\n2.\tShrimp\n10.\tSquid")
[secondary_label 输出]
1. Shark
2. Shrimp
10. Squid
在上面的示例中,\t
转义字符提供了第二列中的水平缩进,使输出对人类非常易读。
尽管 \n
转义字符对于短字符串字面量而言效果不错,但确保源代码对人类来说也易读非常重要。在处理较长字符串时,通常更喜欢使用三引号的方法来创建多行字符串。
转义字符用于向字符串添加额外的格式,这可能是难以或不可能实现的。如果没有转义字符,你将如何构造字符串 Sammy says, "The balloon's color is red."
?
如果我们不希望字符串内有特殊格式?例如,我们可能需要比较或评估使用反斜杠的计算机代码字符串,因此我们不希望 Python 将其用作转义字符。
原始字符串告诉 Python 忽略字符串内的所有格式,包括转义字符。
通过在字符串开始引号之前放置一个 r
,我们可以创建原始字符串:
print(r"Sammy says,\"The balloon\'s color is red.\"")
Sammy says,\"The balloon\'s color is red.\"
通过在给定字符串前使用 r
构建原始字符串,我们可以保留用作转义字符的反斜杠和其他字符。
本教程介绍了通过处理字符串在 Python 3 中格式化文本的几种方法。通过使用转义字符或原始字符串等技术,我们能够确保程序的字符串在屏幕上正确呈现,以便最终用户能够轻松阅读所有输出文本。