印刷的方式是:用Python of percent形式或格式?

Python way of printing: with 'format' or percent form?

本问题已经有最佳答案,请猛点这里访问。

在Python中,似乎有两种不同的生成格式化输出的方法:

1
2
3
4
user ="Alex"
number = 38746
print("%s asked %d questions on stackoverflow.com" % (user, number))
print("{0} asked {1} questions on stackoverflow.com".format(user, number))

有没有一种方法比另一种更好?它们是等价的吗,有什么区别?应该使用什么形式,尤其是对于Python3?


使用format方法,特别是当您关心python 3和未来时。从文档中:

The formatting operations described here [% substitutions] are obsolete and may go away in future versions of Python. Use the new String Formatting in new code.


肾盂2.6中引入了.format

如果需要与早期Python进行向后兼容性,则应该使用EDCOX1 OR 3

对于Python 3和NeXER,您应该使用EDCOX1 2

.format%更强大。把%移植到.format是很容易的,但另一种方法是非常简单的。


两者都可以使用。没有人说%格式化表达式是不推荐使用的。但是,正如前面所述,格式化方法调用的功能更强大。还要注意,%表达式更简洁,也更容易编码。试试看哪种表达式最适合你。


文档说新代码首选format方法。但是,目前没有删除%格式的计划。