我需要打印一个字符串作为列表的一部分,在Python中有3个反斜杠.但是,这似乎并不像我预期的那么简单.
print ["\\\"]
Traceback (most recent call last):
File "<string>", line 1, in <fragment>
EOL while scanning string literal: <string>, line 1, pos 13
Run Code Online (Sandbox Code Playgroud)
任何具有奇数反斜杠的字符串都会这样做,因为Python正在逃避引用.所以我试着逃避自己:
print ["\\\\\\"]
['\\\\\\']
Run Code Online (Sandbox Code Playgroud)
这是6个反斜杠.不是我想要的.这让我们中的一些人在水冷却器周围难以接受.
'\\\\\\'是一个包含3个反斜杠的字符串.通过应用list它可以看到字符串中有3个字符:
In [166]: list('\\\\\\')
Out[166]: ['\\', '\\', '\\']
Run Code Online (Sandbox Code Playgroud)
'\\'*3 也会工作:
In [167]: list('\\'*3)
Out[167]: ['\\', '\\', '\\']
Run Code Online (Sandbox Code Playgroud)
或者自从
In [169]: hex(ord('\\'))
Out[169]: '0x5c'
Run Code Online (Sandbox Code Playgroud)
你可以通过使用\x5c以下方法避免使用反斜杠来逃避:
In [170]: print('\x5c\x5c\x5c')
\\\
Run Code Online (Sandbox Code Playgroud)