python格式化程序中`%`和`,`之间有什么区别?

时间:2016-04-04 07:30:19

标签: python escaping formatter

有时候我会看到这样的使用:

a = "foo"
b = "bar"
print "%s, %s" %(a, b)

有时喜欢:

print "%s, %s", (a, b)

幕后有什么不同吗?

2 个答案:

答案 0 :(得分:2)

他们打印不同的东西:

>>> print "%s, %s" %(a, b)
foo, bar
>>> print "%s, %s", (a, b)
%s, %s ('foo', 'bar')

第一个使用字符串"%s, %s"并使用字符串格式化运算符%将值ab插入到格式占位符中。然后使用print语句打印生成的字符串。

第二个将两个内容传递给print语句:字符串"%s, %s"和元组(a, b)。这两件事都是独立打印的,所以这里没有字符串格式化。

答案 1 :(得分:0)

最好开始使用.format()。

ie:print(' {} {}' .format(a,b)

解决很多问题,不必担心字符串,小数等。