python - 为什么 PyCharm 使用双反斜杠表示转义?

标签 python string escaping pycharm backslash

例如,我这样写一个正常的字符串和另一个“异常”的字符串:

enter image description here

现在我调试了一下,发现在调试工具中,“异常”字符串会这样显示:

enter image description here

问题是:

为什么 PyCharm 显示双反斜杠而不是单个反斜杠?众所周知,\'就是'的意思。有什么技巧吗?

最佳答案

我认为正在发生的是 c 变量字符串中的 ' 需要转义,PyCharm 在运行时知道这一点,因为您已经将整个字符串包围在 "(您会在调试器中注意到,您的 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'

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

关于python - 为什么 PyCharm 使用双反斜杠表示转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36384471/

相关文章:

python - 在 python 中使用 while 循环将所有可被 y 整除的数字 0 到 x 求和

python - 具有不可散列类型的列的唯一性

python - 如何使 wx 工具栏按钮变大?

python - python中出现Attribute error 'float' object has no attribute 'split'如何解决?

css - 从 css 写 html

python - 如何将 Python StringIO() 对象传递给 ZipFile(),或者它是否不受支持?

mysql - 如何修复双编码 UTF8 字符(在 utf-8 表中)

python - 在字符串替换中多次引用相同的输入?

c - 为什么 C 不使用特殊的转义字符串终止字符终止字符串?

java - 在文本区域中转义 XML 标签