为什么3个反斜杠在Python字符串中等于4?

问题:

你能告诉我为什么'?\\\?'=='?\\\\?'True吗?这让我疯狂,我找不到合理的答案…

>>> list('?\\\?')
['?', '\\', '\\', '?']
>>> list('?\\\\?')
['?', '\\', '\\', '?']

回答:

基本上,因为python在反斜杠处理方面稍微宽松一点。引用https://docs.python.org/2.0/ref/strings.html

与标准C不同,所有无法识别的转义序列都保留在字符串中,即the backslash is left in the string

(重点在原)
因此,在python中,它不是三个反斜杠等于四,这是当您使用像?之类的角色跟随反斜杠时,两者一起作为两个字符,因为\?不是公认的转义序列。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Why do 3 backslashes equal 4 in a Python string?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

53 − = 45