为什么python解释'\12';as'\n';
我有一个字符串,其中包含以下序列为什么python解释'\12';as'\n';,python,python-3.x,Python,Python 3.x,我有一个字符串,其中包含以下序列'10\S\12/L' 我想使用.split('\n')基于行分割字符串,但是它会导致字符串在'\12'上断开。我发现每当一个字符串包含这个时,解释器就会打印带有换行符的字符串 为什么'\12'与'\n'相同?我如何防止它?因为Python将其解释为,以反斜杠转义开头,然后是12 你可以看到相反的情况: >>> # Python 3.9 REPL >>> oct(ord('\n')) '0o12' 请参阅以下站点上的Pytho
'10\S\12/L'
我想使用.split('\n')
基于行分割字符串,但是它会导致字符串在'\12'
上断开。我发现每当一个字符串包含这个时,解释器就会打印带有换行符的字符串
为什么
'\12'
与'\n'
相同?我如何防止它?因为Python将其解释为,以反斜杠转义开头,然后是12
你可以看到相反的情况:
>>> # Python 3.9 REPL
>>> oct(ord('\n'))
'0o12'
请参阅以下站点上的Python文档:
“\ooo
表示八进制值为ooo的[unicode]字符…最多可接受3位数字,”但在本例中,在这两位数字处停止
如果要在字符串中包含文字反斜杠,可以:
- 用另一个反斜杠转义:
'\\12'
- 使用带有“r”前缀的原始字符串文字:
r'\12'
正如适用的文档所告诉您的,后跟八进制数的反斜杠(转义信号)具有特殊含义。从这些文档中你还不了解什么?@Prune IMO,这是Python文档中一个特别密集且很难用谷歌搜索的部分。请注意,除非你真正、确切地记住所有转义序列,对于任何应该包含多个文本的字符串,最好使用原始字符串文本
\
。即使只有一个文本\
,这可能已经是一个好主意了。
string = r"10\S\12/L"
string = "10\S\\12/L"