Python,将所有浮点数输出到小数点后两位

我需要输出4个不同的浮点数到小数点后两位。

这是我的:

print '%.2f' % var1,'kg =','%.2f' % var2,'lb =','%.2f' % var3,'gal =','%.2f' % var4,'l' 

这是非常不洁的,看起来不好。 有没有一种方法可以使浮动在'%.2f'?

注意:使用Python 2.6。

那么我会尽可能清理它如下:

 print "%.2f kg = %.2f lb = %.2f gal = %.2f l" % (var1, var2, var3, var4) 

如果你只是想将值转换成漂亮的string,请执行以下操作:

 twodecimals = ["%.2f" % v for v in vars] 

或者,你也可以打印出你的问题中的单位:

 vars = [0, 1, 2, 3] # just some example values units = ['kg', 'lb', 'gal', 'l'] delimiter = ', ' # or however you want the values separated print delimiter.join(["%.2f %s" % (v,u) for v,u in zip(vars, units)]) Out[189]: '0.00 kg, 1.00 lb, 2.00 gal, 3.00 l' 

第二种方式允许您轻松地更改分隔符(制表符,空格,换行符等)以轻松满足您的需求; 分隔符也可以是一个函数参数,而不是硬编码的。

编辑:要使用'name = value'语法,只需在列表理解中改变元素操作:

 print delimiter.join(["%s = %.2f" % (u,v) for v,u in zip(vars, units)]) Out[190]: 'kg = 0.00, lb = 1.00, gal = 2.00, l = 3.00' 

如果你正在寻找可读性,我相信这是代码:

 print '%(kg).2f kg = %(lb).2f lb = %(gal).2f gal = %(l).2f l' % { 'kg': var1, 'lb': var2, 'gal': var3, 'l': var4, } 

格式string语法。

https://docs.python.org/3/library/string.html#formatstrings

 from math import pi var1, var2, var3, var4 = pi, pi*2, pi*3, pi*4 '{:0.2f}, kg={:0.2f}, lb={:0.2f}, gal={:0.2f}'.format(var1, var2, var3, var4) 

输出将是:

 '3.14, kg=6.28, lb=9.42, gal=12.57' 

我刚刚发现了一个循环函数 – 它在Python 2.7中,不知道2.6。 它以一个浮点数和dps数作为参数,所以round(22.55555,2)给出了22.56的结果。

不是直接以你想写的方式,没有。 Python的devise原则之一是“显式优于隐式”(请参阅import this )。 这意味着最好是描述你想要的,而不是让输出格式依赖于某些全局格式化设置。 你当然可以格式化你的代码,使其看起来更好:

 print '%.2f' % var1, \ 'kg =' ,'%.2f' % var2, \ 'lb =' ,'%.2f' % var3, \ 'gal =','%.2f' % var4, \ 'l'