新的Python打印格式语句返回不同的结果。为什么?
Python 2.7.5+ 新样式“{X.Yf}”。格式(num)的行为似乎与旧样式“%X.Yf%”(num)不同。有人能解释一下吗新的Python打印格式语句返回不同的结果。为什么?,python,string,python-2.7,string-formatting,Python,String,Python 2.7,String Formatting,Python 2.7.5+ 新样式“{X.Yf}”。格式(num)的行为似乎与旧样式“%X.Yf%”(num)不同。有人能解释一下吗 >>> '%8.3f' % (0.98567) ' 0.986' >>> '%8.3f' % (1.98567) ' 1.986' >>> '{num:8.3}'.format(num=0.98567) ' 0.986' >>> '{num:8.3}'.format(num=1.
>>> '%8.3f' % (0.98567)
' 0.986'
>>> '%8.3f' % (1.98567)
' 1.986'
>>> '{num:8.3}'.format(num=0.98567)
' 0.986'
>>> '{num:8.3}'.format(num=1.98567)
' 1.99'
请注意,旧样式在小数点后显示3位数字,而新样式有时打印2位,有时打印3位。我犯了一些愚蠢的错误吗?也使用新格式的
f
:
>>> '{num:8.3f}'.format(num=1.98567)
' 1.986'
如果没有格式类型,默认值为g
,精度被解释为总位数(不计算小数点前的0)。如果在declimal point之前有一个1
,则在它之后只显示两位数字
如果使用g
而不是f
,您将看到与旧字符串格式相同的输出:
>>> '%8.3g' % (1.98567)
' 1.99'
“这是一个有意义的数字。”杰凯德利,谢谢!我一直坚持使用的术语。