当我想在Python中执行print
命令并且我需要使用引号时,我不知道如何在不关闭字符串的情况下执行此操作。
例如:
print " "a word that needs quotation marks" "
但是当我尝试做上面所做的事情时,我最终关闭了字符串,我不能把我需要的字放在引号之间。
我该怎么做?
答案 0 :(得分:147)
您可以通过以下三种方式之一完成此操作:
1)同时使用单引号和双引号:
>>> print '"A word that needs quotation marks"'
"A word that needs quotation marks"
2)转义字符串中的双引号:
>>> print "\"A word that needs quotation marks\""
"A word that needs quotation marks"
3)使用三引号字符串:
>>> print """ "A word that needs quotation marks" """
"A word that needs quotation marks"
答案 1 :(得分:9)
你需要逃脱它:
>>> print "The boy said \"Hello!\" to the girl"
The boy said "Hello!" to the girl
>>> print 'Her name\'s Jenny.'
Her name's Jenny.
请参阅string literals的python页面。
答案 2 :(得分:4)
Python接受“和”作为引号,因此你可以这样做:
>>> print '"A word that needs quotation marks"'
"A word that needs quotation marks"
或者,只是逃避内心的
>>> print "\"A word that needs quotation marks\""
"A word that needs quotation marks"
答案 3 :(得分:3)
使用文字转义字符\
print("Here is, \"a quote\"")
该角色基本上意味着忽略我下一个角色的语义上下文,并以字面意义处理它。
答案 4 :(得分:1)
在Windows上的Python 3.2.2中,
print(""""A word that needs quotation marks" """)
没问题。我认为这是Python解释器的增强。
答案 5 :(得分:1)
重复的一个案例是要求对外部流程使用引号。解决方法是不使用shell,这会删除一级引用的要求。
os.system("""awk '/foo/ { print "bar" }' %""" % filename)
可以有用地替换为
subprocess.call(['awk', '/foo/ { print "bar" }', filename])
(这也解决了filename
中的shell元字符需要从shell转义的错误,原始代码无法执行;但是没有shell,不需要它。)
当然,在绝大多数情况下,您根本不需要或不需要外部流程。
with open(filename) as fh:
for line in fh:
if 'foo' in line:
print("bar")
答案 6 :(得分:1)
当您有多个这样的词想要连接在一个字符串中时,我建议使用format
或f-strings
来增加可读性(我认为)。
举个例子:
s = "a word that needs quotation marks"
s2 = "another word"
现在您可以做
print('"{}" and "{}"'.format(s, s2))
将打印
"a word that needs quotation marks" and "another word"
从Python 3.6开始,您可以使用:
print(f'"{s}" and "{s2}"')
产生相同的输出。
答案 7 :(得分:0)
您还可以尝试添加字符串:
print " "+'"'+'a word that needs quotation marks'+'"'
答案 8 :(得分:0)
我很惊讶没有人提到 explicit conversion flag
>>> print('{!r}'.format('a word that needs quotation marks'))
'a word that needs quotation marks'
标志!r
是repr()
内置函数 1 的简写。用于打印对象表示形式object.__repr__()
而不是object.__str__()
。
尽管有一个有趣的副作用:
>>> print("{!r} \t {!r} \t {!r} \t {!r}".format("Buzz'", 'Buzz"', "Buzz", 'Buzz'))
"Buzz'" 'Buzz"' 'Buzz' 'Buzz'
请注意如何以不同的方式处理不同的引号,以使其适合Python对象 2 的有效字符串表示形式。
1如果有人另外知道,请纠正我。
2问题的原始示例" "word" "
在Python中不是有效的表示形式
答案 9 :(得分:0)
这在IDLE Python 3.8.2中对我有用
print('''"A word with quotation marks"''')
三重单引号似乎允许您将双引号包括在字符串中。