python字符串在单引号前添加反斜杠

agn*_*nel 2 python string quotes

我有一个字符串,其中包含这样的引号:

string = "\"This is my mom's vase\", said Kevin."
Run Code Online (Sandbox Code Playgroud)

问题是当我将它用作 python 中的字符串时,它会在单引号前添加一个反斜杠,如下所示:

>>> string
'"This is my mom\'s vase", said Kevin.'
>>>
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,我该怎么办?

Ara*_*Fey 5

说明

您看到的是repr函数生成的字符串的表示形式。repr以这样的方式输出字符串,它们是有效的python文字;换句话说,您可以将 的输出复制/粘贴repr(string)到 python 程序中,而不会出现语法错误:

>>> string
'"This is my mom\'s vase", said Kevin.'
>>> '"This is my mom\'s vase", said Kevin.'  # it's valid python code!
'"This is my mom\'s vase", said Kevin.'
Run Code Online (Sandbox Code Playgroud)

因为您的字符串同时包含单引号'和双引号",python 必须转义这些引号之一才能生成有效的字符串文字。与您使用反斜杠转义双引号的方式相同:

"\"This is my mom's vase\", said Kevin."
Run Code Online (Sandbox Code Playgroud)

Python 选择转义单引号:

'"This is my mom\'s vase", said Kevin.'
Run Code Online (Sandbox Code Playgroud)

当然,这两个字符串完全相同。那些反斜杠仅用于转义目的,它们实际上并不存在于字符串中。您可以通过printing 字符串来确认这一点,它输出字符串的真实值:

>>> print(string)
"This is my mom's vase", said Kevin.
Run Code Online (Sandbox Code Playgroud)

解决方案

没有什么可以解决的!你还在这里做什么?向上滚动并再次阅读说明!