我想要一个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"'
假设我只能使用转义码来获得所需的输出,我应该改变什么以获得理想的输出?
答案 0 :(得分:4)
当您显示变量或直接在Python shell中输入字符串时,它将用单引号引起来。
>>> "String"
'String'
在显示字符串时,Python会将字符串中的单引号引起来,因为它是用单引号引起来的。否则,您将遇到类似这样的情况,并且不清楚字符串的结尾:
'John's potato farm'
当您打印时,它会如您所愿地出现在引号周围。
>>> s = "String"
>>> print(s)
String
要回答您的问题:完全按照您的要求创建字符串,然后将其打印出来。
s = "Siti's father says, \"Hello.\""
print(s)
答案 1 :(得分: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\""
创建一个具有 content 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为您提供了一种可能的表示形式,即 ,即单引号分隔的一种。