如何避免在字符串中使用特殊字符打印反斜杠

问题描述 投票:0回答:2

我想要一个Siti's father says, "Hello."的输出。

但是,我最接近的是:

s = "Siti's father says, \"Hello\""

s是一个包含所需输出的变量。

当我执行print("Siti's father says, \"Hello\"")并获得完美输出时出现问题,但是当我将上述文本分配给变量s时,我在定义s时会得到不同的输出。我得到:'Siti\'s father says, "Hello"'

假设我只能使用转义码来获得所需的输出,我应该改变什么来获得完美的输出?

python string
2个回答
4
投票

当您显示变量或直接在Python shell中输入字符串时,它将用单引号括起来。

>>> "String"    
'String'

Python在显示时会转义字符串中的单引号,因为它用单引号括起来。否则,你会有类似的东西,并且不清楚字符串的结束位置:

'John's potato farm'

当你打印它时,它会出现没有引号,正如你所期望的那样。

>>> s = "String"
>>> print(s)
String

要回答您的问题:完全按照您已经完成的方式创建字符串,然后将其打印出来。

s = "Siti's father says, \"Hello.\""
print(s)

4
投票

字符串表示与字符串的内容之间存在差异。每当你print的东西,Python将按原样输出字符串的内容。每当你检查一个值时(例如只需在提示符下输入s,或使用repr(s)),Python就会给你一个值的表示;它试图给你一些你可以优先使用的东西,如Python源代码。例:

>>> datetime.now()
datetime.datetime(2018, 7, 13, 15, 58, 37, 162588)

你可以在Python源代码中使用像这样的datetime.datetime(2018, 7, 13, 15, 58, 37, 162588)来重新创建这个datetime对象。

使用字符串它的工作原理相同。字符串文字"Siti's father says, \"Hello\""创建一个内容为Siti's father says, "Hello"的字符串。该字符串的表示形式可以是以下任何一种:

  • "Siti's father says, \"Hello\""
  • 'Siti\'s father says, "Hello"'
  • '''Siti's father says, "Hello"'''
  • 'Siti\x27s father says, "Hello"'
  • 更多的可能性

Python为您提供了这些可能的表示形式之一,即单引号分隔的表示形式。

© www.soinside.com 2019 - 2024. All rights reserved.