为什么PyCharm使用双反斜杠来表示逃逸?

时间:2016-04-03 10:45:07

标签: python string escaping pycharm backslash

例如,我写了一个普通字符串和另一个“异常”字符串,如下所示:

enter image description here

现在我调试它,发现在调试工具中,“异常”字符串将显示如下:

enter image description here

以下是问题:

为什么PyCharm显示双反斜杠而不是单反斜杠?众所周知,\'表示'。有诀窍吗?

1 个答案:

答案 0 :(得分:-1)

我认为正在发生的是'变量字符串中的c需要转义而PyCharm在运行时知道这一点,因为你已经包围了"中的完整字符串(你和#39; ll在调试器中注意到,c字符串现在被'包围了。要转义单引号,它会将其更改为\',但现在,字符串中有\需要转义,要在Python中转义\,请键入\\ }。

修改 让我看看我是否可以解释逃离的顺序。

  1. "u' this is not normal"已分配到c
  2. PyCharm在运行时将c中的字符串转换为'u' this is not normal'。看看如何在不转义第二个'的情况下,您的字符串现在在u之后立即关闭。
  3. PyCharm通过在其前面添加斜杠自动为您转义'。该字符串现在为'u\' this is not normal'。在这一点上,一切都应该没问题,但PyCharm可能会采取额外措施来保障安全。
  4. PyCharm然后转义刚刚添加到字符串中的斜杠,将字符串保留为:'u\\' this is not normal'
  5. 这可能是PyCharm中的一个设置。它是否会导致您的代码出现实际问题?