例如,我编写一个正常字符串和另一个“异常”字符串,如下所示:
现在我调试一下,发现在调试工具中,“异常”字符串会显示如下:
这是问题:
为什么 PyCharm 显示双反斜杠而不是单个反斜杠?众所周知,\'
means '
。有什么窍门吗?
我相信正在发生的是'
在你的c
变量字符串需要转义,并且 PyCharm 在运行时知道这一点,前提是您已将完整字符串包围在"
(您会在调试器中注意到,您的c
字符串现在被包围'
)。为了转义单引号,它将其更改为\'
,但是现在,有一个\
在需要转义的字符串中,并转义\
在Python中,你输入\\
.
EDIT让我看看是否可以解释这里发生的转义顺序。
-
"u' this is not normal"
被分配给c
- PyCharm 将字符串转换为
c
to 'u' this is not normal'
在运行时。看看如何,无需逃避第二个'
,您的字符串现在立即关闭u
.
- PyCharm 逃脱了
'
通过在其前面添加斜杠自动为您提供。字符串现在是'u\' this is not normal'
。此时,一切都应该没问题,但 PyCharm 可能会采取额外的安全措施。
- 然后,PyCharm 转义刚刚添加到字符串中的斜杠,将字符串保留为:
'u\\' this is not normal'
.
这可能是 PyCharm 内部的设置。它会导致您的代码出现实际问题吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)