字符串格式:更好地使用'%'或'格式'?

时间:2014-05-23 00:15:47

标签: python string

我使用python 3.4,我可以用两种方式格式化字符串:

print("%d %d" %(1, 2))

print("{:d} {:d}".format(1, 2))

documentation中,他们仅使用'格式'来显示示例。这是否意味着使用'%'是不是很好,或者使用哪个版本并不重要?

2 个答案:

答案 0 :(得分:7)

引自official documentation

  

这种字符串格式化方法是Python 3中的新标准,应该优先于新代码中字符串格式化操作中描述的%格式。

因此,format是推荐的方法,可以继续。

答案 1 :(得分:3)

除官方网站上的建议外,format()方法比运营商'%'更灵活,更强大,更易读。

例如:

>>> '{2}, {1}, {0}'.format(*'abc')
'c, b, a'
>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
>>> 'Coordinates: {latitude}, {longitude}'.format(**coord)
'Coordinates: 37.24N, -115.81W'
>>> "Units destroyed: {players[0]}".format(players = [1, 2, 3])
'Units destroyed: 1'

以及更多,更多,更多......很难与运营商做类似的事情'%'。