【发布时间】:2013-11-18 19:52:51
【问题描述】:
例如,我们有:
word = 'Some Random Word'
print '"' + word + '"'
有没有更好的方法在变量周围打印双引号?
【问题讨论】:
-
如果
word包含自己的双引号,您希望它们被转义还是不理会?
标签: python python-2.7
例如,我们有:
word = 'Some Random Word'
print '"' + word + '"'
有没有更好的方法在变量周围打印双引号?
【问题讨论】:
word 包含自己的双引号,您希望它们被转义还是不理会?
标签: python python-2.7
更新:
来自Python 3.6,您可以使用f-strings
>>> print(f'"{word}"')
"Some Random Word"
原答案:
你可以试试%-formatting
>>> print('"%s"' % word)
"Some Random Word"
>>> print('"{}"'.format(word))
"Some Random Word"
或者用\转义引号字符
>>> print("\"%s\"" % word)
"Some Random Word"
而且,如果双引号不是限制(即单引号可以)
>>> from pprint import pprint, pformat
>>> print(pformat(word))
'Some Random Word'
>>> pprint(word)
'Some Random Word'
或者像其他人已经说过的那样(将其包含在您的声明中)
>>> word = '"Some Random Word"'
>>> print(word)
"Some Random Word"
使用任何一个你觉得更好或更容易混淆的方法。
而且,如果你需要为多个单词做,你还不如创建一个函数
def double_quote(word):
return '"%s"' % word
print(double_quote(word), double_quote(word2))
并且(如果您知道自己在做什么&)如果您担心这些性能,请参阅this comparison。
【讨论】:
pformat?)都不能处理word 包含双引号的可能性。
word本身带有双引号的可能性。 word 的内容不影响方法在其周围添加双引号的能力。如果有人确实只想要一对双引号,那么这完全是一个不同的问题。
word 包裹在它们周围。您能否提供一个示例输入和预期输出?
json.dumps怎么样:
>>> import json
>>> print(json.dumps("hello world"))
"hello world"
与这里提到的其他方法相比,它的优点是它也可以在字符串中转义引号(采用str.format!),始终使用双引号,实际上是为了可靠的序列化(采用repr()!):
>>> print(json.dumps('hello "world"!'))
"hello \"world\"!"
【讨论】:
你可以试试repr
代码:
word = "This is a random text"
print repr(word)
输出:
'This is a random text'
【讨论】:
json.dumps 可能是更好的选择。
这看起来很傻,但对我来说很好用。它易于阅读。
word = "Some Random Word"
quotes = '"'
print quotes + word + quotes
【讨论】:
word = '"Some Random Word"' # <-- did you try this?
【讨论】:
使用格式方法或f-string配合repr(),可以写得更优雅。
a = "foo"
print("{!r}".format(a))
b = "bar"
print(f"{b!r}")
【讨论】:
使用转义序列
例子:
int x = 10;
System.out.println("\"" + x + "\"");
O/P
"10"
【讨论】: