我不明白原始字符串文字是如何工作的。我知道当使用r
它忽略所有特价,就像做时一样\n
它将其视为 \n 而不是新行。但后来我尝试这样做:
x = r'\'
它说SyntaxError: EOL while scanning string literal
并不是 '\'
为什么?我理解正确吗?
对此的解释是什么:
print r'\\' # gives '\\'
print r'\\\' # gives SyntaxError
将单引号放入以单引号开头的字符串中的唯一方法是将其转义。因此,当您有未转义的反斜杠后跟引号字符时,原始字符串和常规字符串文字都将允许转义引号字符。由于要求必须有一种方法可以在以单(或双)引号开头的字符串文字中表达单(或双)引号,因此字符串文字'\'
无论您使用原始字符串文字还是常规字符串文字,都是不合法的。
要获得具有奇数个反斜杠的任意字符串,我认为最好的方法是使用常规字符串文字。这是因为尝试使用r'\\'
会起作用,但它会给你一个字符串two反斜杠而不是一个:
>>> '\\' # A single literal backslash.
'\\'
>>> len('\\')
1
>>> r'\\' # Two literal backslashes, 2 is even so this is doable with raw.
'\\\\'
>>> len(r'\\')
2
>>> '\\'*3 # Three literal backslashes, only doable with ordinary literals.
'\\\\\\'
>>> len('\\'*3)
3
这个答案只是为了补充另一个答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)