直接在python shell中输入。
"she said, \"don't\""
然后按Enter,结果将是:
'she said, "don\'t"'
为什么前一个斜线消失而后一个斜线出现在n和'之间?
结果不应该是'she said, \"don't\"'
?
答案 0 :(得分:2)
这只是字符串对象的内部表示。用于包含字符串的引用类型是任意的 - 它可以是单引号'
,双引号,"
或三引号'''
或"""
。 Python通常更喜欢用单引号括起字符串,所以有时它会这样做。但是,实际字符串的内容是相同的。您可以使用print()
来查看此内容。
>>> "she said, \"don't\""
'she said, "don\'t"'
>>> print("she said, \"don't\"")
she said, "don't"
>>> print('she said, "don\'t"')
she said, "don't"
答案 1 :(得分:2)
当您在Python解释器中输入"she said, \"don't\""
之类的内容时,Python会构造一个String
对象。您在此处的输入称为"字符串文字"。
可以通过多种方式构造相同的字符串对象,字符串文字只是其中之一,您可以use different string literal to construct the same string。
" String对象"不记得它是如何构建的。这就是为什么输出应该是字符串对象的表示,可能与它的构造方式不同。当您的输入和输出相同时,请考虑巧合。
<强>更新强>
&#34;字符串对象&#34;的表示都是有效的字符串文字。您可以在此处复制输出,并将其直接输入到输入。
由于Python选择使用单引号字符串文字来表示输出,因此双引号不受限制,因此不需要转义。但是,所有单引号都需要转义。这是单引号和双引号字符串文字之间最显着的差异。
答案 2 :(得分:0)
您输入的字符串的实际内容为she said, "don't"
。如果你做print("she said, \"don't\"")
,那就是你会得到的。引号和斜杠只是让你看到字符串的非模糊表示。