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

3lxsmp7m  于 2022-12-13  发布在  PyCharm
关注(0)|答案(1)|浏览(246)

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

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

问题是:
为什么PyCharm显示的是双反斜杠而不是单反斜杠呢?众所周知,\'就是'的意思,有什么窍门吗?

bnlyeluc

bnlyeluc1#

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

EDIT让我看看我是否能解释这里发生的转义顺序。

1.将"u' this is not normal"指定给c

  1. PyCharm在运行时将c中的字符串转换为'u' this is not normal'。看看如何在不转义第二个'的情况下,在u之后关闭字符串。
  2. PyCharm通过在'前面添加一个斜杠自动为您转义它。字符串现在是'u\' this is not normal'。此时,一切都应该很好,但PyCharm可能为了安全起见采取了额外的步骤。
    1.然后PyCharm转义它刚刚添加到字符串中的斜杠,使字符串保留为:'u\\' this is not normal' .
    这可能是PyCharm内部的一个设置。它是否会导致代码出现实际问题?

相关问题