Python 2.7 为什么这种错误的python格式会产生这种结果而不是异常?
我发现了一个错误,原因是Python 2.7 为什么这种错误的python格式会产生这种结果而不是异常?,python-2.7,format,Python 2.7,Format,我发现了一个错误,原因是:的格式不正确 但我还不明白这种行为。为什么第二行生成两个pi(错误的第二个值),但格式正确,而不是引发异常 import math data = math.pi, math.e print 'pi={:0.2f}, e={:0.4f}'.format(*data) print 'pi={0:.2f}, e={0:.4f} wrong!'.format(*data) # wrong! 给予 冒号前的数字是参数的索引,因此在第二个print中,{0.2f}和{0.
:
的格式不正确
但我还不明白这种行为。为什么第二行生成两个pi(错误的第二个值),但格式正确,而不是引发异常
import math
data = math.pi, math.e
print 'pi={:0.2f}, e={:0.4f}'.format(*data)
print 'pi={0:.2f}, e={0:.4f} wrong!'.format(*data) # wrong!
给予
冒号前的数字是参数的索引,因此在第二个
print
中,{0.2f}
和{0.4f}
都打印索引0的相同参数,即math.pi
摘录自:
请注意
:
之前的字段\u name
,它可以作为元素索引。非常好,谢谢。我做了大量的数字工作,但直到最近才懒得格式化文本,然后是旧样式对新样式。。。这个简明的解释正是我所需要的。试试另一个?
pi=3.14, e=2.7183
pi=3.14, e=3.1416 wrong!
replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"
field_name ::= arg_name ("." attribute_name | "[" element_index "]")*