关于python:string格式:最好使用”%”或”format”?

String formatting: better to use '%' or 'format'?

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

我使用python3.4,我可以用两种方式格式化字符串:

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

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

在文档中,它们只显示使用"格式"的示例。这是否意味着使用"%"不好,或者使用哪个版本无关紧要?


引用官方文件,

This method of string formatting is the new standard in Python 3, and should be preferred to the % formatting described in String Formatting Operations in new code.

因此,建议采用format的方法,并继续前进。


除了官方网站上的建议之外,format()方法比运算符"%"更灵活、更强大、更可读。

例如:

1
2
3
4
5
6
7
>>> '{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'

越来越多,越来越多,越来越多…很难对运算符"%"执行类似的操作。