如何知道在Python中要添加多少反斜杠

如何知道在Python中要添加多少反斜杠,python,Python,如果我想在Python中显示其中三个,为什么需要在左侧添加5个反斜杠?如何计算反斜杠 通过添加r,可以使用“原始字符串”: print(r'"\\\Warning///"') 这有助于避免反斜杠的“转义”属性,python使用该属性来控制特殊字符的使用,反斜杠在大多数情况下被视为转义序列,因此,对于单个\的打印,需要根据 与标准C不同,所有无法识别的转义序列都保留在字符串中不变,即反斜杠保留在字符串中 由于\W不是有效的转义序列,\W按原样打印。另一方面,\打印为\ >>>

如果我想在Python中显示其中三个,为什么需要在左侧添加5个反斜杠?如何计算反斜杠

通过添加
r
,可以使用“原始字符串”:

print(r'"\\\Warning///"')

这有助于避免反斜杠的“转义”属性,python使用该属性来控制特殊字符的使用,反斜杠在大多数情况下被视为转义序列,因此,对于单个
\
的打印,需要根据

与标准C不同,所有无法识别的转义序列都保留在字符串中不变,即反斜杠保留在字符串中

由于
\W
不是有效的转义序列,
\W
按原样打印。另一方面,
\
打印为
\

>>> print('\warning') # 1 \
\warning
>>> print('\\warning') # 2 \
\warning
>>> print('\\\warning') # 3 \
\\warning
>>> print('\\\\warning') # 4 \
\\warning
>>> print('\\\\\warning') # 5 \
\\\warning
>>> print('\\\\\\warning') # 6 \
\\\warning
>>>
所以
\W
被打印为
\\\W

然而,在Python3.6中,根据

在版本3.6中更改:无法识别的转义序列会产生弃用警告。在Python的未来版本中,它们将是一个语法错误


因此,在未来的python中,您的代码可能会给出SyntaxError。

实际上,从技术上讲,您应该键入2n个反斜杠来表示其中的n个。在严格的语法中,反斜杠保留为转义字符,并具有特殊含义,即它不表示“反斜杠”。所以,我们从我们的角色集中取它来赋予它一个特殊的含义,那么如何表示一个纯粹的“反斜杠”?答案是用换行符的表示方式表示,即“\”代表反斜杠


键入5时会打印3个反斜杠的原因是:前4个反斜杠的解释如我上面所说,当涉及到第五个反斜杠时,解释器发现“\W”没有定义,因此它将第五个反斜杠视为普通反斜杠,而不是转义字符。这是解释器的高级便利功能,在其他版本的解释器或其他语言(特别是在更严格的语言中)中可能不正确。

与标准C不同,任何无法识别的转义序列在python中都保持不变

>>> print('\test')
'    est'  # '\t' evaluates to tab + 'est'

>>> print('\\test')
'\test'  # '\\' evaluates to literal '\' + 'test'

>>> print('\\\test')
'\    est'  # '\\' evaluates to literal '\' + '\t' evaluates to tab + 'est'

>>> print('\\\\test')
'\\test'  # '\\' evaluates to literal '\' + '\\' evaluates to literal '\' + 'test'

\
用于特殊字符,如
'\n'
'\t'
等。您应键入
2n
2n-1
\
以打印
n
\

>>> print('\warning') # 1 \
\warning
>>> print('\\warning') # 2 \
\warning
>>> print('\\\warning') # 3 \
\\warning
>>> print('\\\\warning') # 4 \
\\warning
>>> print('\\\\\warning') # 5 \
\\\warning
>>> print('\\\\\\warning') # 6 \
\\\warning
>>>

\用于特殊字符,如
'\n'
'\t'
等。。。因此\被编码为一个特殊字符,以及
'\\'
。所以只要把你的钱加倍就行了。(有时不需要加倍就可以工作,但如果你总是加倍,它肯定会工作。)遵循这一点,它有很好的解释。原始字符串不一定工作:
r“\”
是坏的。你是对的,我不知道。。。但它确实适用于OP想要的多个退格