0

python 文档说:

如果我们将字符串文字设为“原始”字符串,\n则序列不会转换为换行符,但行尾的反斜杠和源中的换行符都作为数据包含在字符串中。因此,示例:

我不太明白,因为它说源中的换行符作为 data 包含在字符串中,但\n只是按字面意思打印,如下例所示。

hello = r"This is a rather long string containing\n\
several lines of text much as you would do in C."

print(hello)

任何一种帮助者都可以帮助我理解,但行尾的反斜杠和源代码中的换行符都作为数据包含在字符串中吗?

4

1 回答 1

2

您在字符串中同时包含\n(两个字符)换行符:

>>> hello
'This is a rather long string containing\\n\\\nseveral lines of text much as you would do in C.'

将其缩减为仅\n\部分(在第二个斜杠后加上换行符:

>>> hello = r'\n\
... '
>>> hello
'\\n\\\n'
>>> len(hello)
4
>>> list(hello)
['\\', 'n', '\\', '\n']

那里有4个字符。一个反斜杠(在表示中加倍以使其成为有效的 Python 字符串)、一个n、另一个反斜杠和一个换行符

你可以进一步分解它;源中文字换行符之前的反斜杠创建一个带有反斜杠和换行符的字符串:

>>> hello = r'\
... '
>>> hello
'\\\n'
>>> len(hello)
2
>>> list(hello)
['\\', '\n']

r'\n'另一方面,原始文字创建反斜杠和文字字符n

>>> hello = r'\n'
>>> hello
'\\n'
>>> len(hello)
2
>>> list(hello)
['\\', 'n']
于 2013-04-24T07:25:22.233 回答