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

guo*_*guo 5 python string escaping backslash pycharm

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

在此输入图像描述

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

在此输入图像描述

这是问题:

为什么PyCharm显示双反斜杠而不是单反斜杠?众所周知,\'意味着'.有什么伎俩吗?

Kyl*_*ake -1

我相信正在发生的事情是'你的c变量字符串中的 需要被转义,并且 PyCharm 在运行时知道这一点,因为你已经包围了完整的字符串 in "(你会在调试器中注意到,你的c字符串现在被 包围')。为了转义单引号,它将其更改为\',但现在,字符串中有一个\需要转义,并且要\在 Python 中转义,您可以键入\\

编辑 让我看看是否可以解释这里进行转义的顺序。

  1. "u' this is not normal"被分配给c
  2. PyCharm 在运行时将字符串转换c'u' this is not normal'。看看在不转义 2nd 的情况下',您的字符串现在如何在 后立即关闭u
  3. 'PyCharm通过在其前面添加斜杠来自动为您转义。字符串现在是'u\' this is not normal'. 此时,一切都应该没问题,但 PyCharm 可能会采取额外的安全措施。
  4. 然后,PyCharm 转义刚刚添加到字符串中的斜杠,将字符串保留为:'u\\' this is not normal'

这可能是 PyCharm 内部的设置。它会导致您的代码出现实际问题吗?