如何在Python中处理多重嵌套的单引号和双引号

时间:2018-07-12 16:45:35

标签: python string

我正在尝试创建字符串:

185 bananas walk into a bar. The bartender says, "We don't serve bananas here." So the bananas split!

如果我输入

q = "185 bananas walk into a bar. The bartender says, \"We don't serve bananas here.\" So the bananas split!"

我明白了

185 bananas walk into a bar. The bartender says, "We don\'t serve bananas here." So the bananas split!

我不希望\之前的',但我不知道如何摆脱它

4 个答案:

答案 0 :(得分:0)

您的代码很好。当你做

q = "185 bananas walk into a bar. The bartender says, \"We don't serve bananas here.\" So the bananas split!"

反斜杠没有插入到字符串中,它们只是告诉python以下引号不是关闭字符串,而是意味着要包含在字符串中。 Python遵守该规定,并将引号添加到字符串中,但不添加反斜杠。

再次显示字符串时,如果使用python提示符(REPL >>>或ipython Notebook,则将得到对象的表示形式,其中包括环绕的引号和反斜杠以表示内部引号不能关闭字符串。但是,如果使用print()打印字符串或将其发送到某处,则反斜杠就不存在了。它们是程序员在显示表示形式时可见的一种,无论如何也应仅用于调试。

在字符串中包含引号的另一种方法是使用三引号引起来的字符串,则不需要反斜杠:

q = """185 bananas walk into a bar. The bartender says, "We don't serve bananas here." So the bananas split!"""

答案 1 :(得分:0)

您使用的是哪个python版本?我在python 3上尝试了同样的事情,并且有效。 我认为您的字符串没有任何问题

q = "185 bananas walk into a bar. The bartender says, \"We don't serve bananas here.\" 
So the bananas split!"
print (q)

这给出了输出-

185 bananas walk into a bar. The bartender says, "We don't serve bananas here." So 
the bananas split!

答案 2 :(得分:0)

有几种解决方法:

  • 操作方式(如果使用print(q)打印变量,则会看到打印正确;交互式表示形式带有转义斜线,使您可以轻松复制/粘贴它) li>
  • 使用三引号

最后一个选择可能最适合您,如下所示:

q = """185 bananas walk into a bar. The bartender says, "We don't serve bananas here." So the bananas split!"""
print(q)

答案 3 :(得分:0)

如果您的问题是关于在字符串值中看到或处理反斜杠,那不是问题;他们不在那里。

如果要在源代码中键入或读取文字中的反斜杠,则说明 是一个问题-Python用三引号解决了该问题:

 """This "happy" string ain't got no problems."""

您可以将两种引号都嵌入在三引号引起来的字符串中。

(如果您引用一些Python代码并且它使用单引号和双引号,甚至使用三重的单引号和双引号怎么办?那么,您将需要转义它们,或使用字符串文字串联来中断在两个单独的文字或类似的文字上使用三引号引起来。但这是一个罕见得多的问题。)