Python打印问题

时间:2013-07-02 04:12:53

标签: python python-3.x

我正在使用以下代码(此问题已简化):

t1=['1.99','2','133.37']
t2=['4.98','5','11116.98']
t3=list(zip(t1,t2))
t4=[]
for num1,num2 in t3:
  t4.append(float(num1)+float(num2))
print('The sum is='+ ":".join(map(str,t4)))
# output is -> The sum is=6.970000000000001:7.0:11250.35

但我希望输出如下:

The sum is=6.970000:7.000000:11250.350000
# i.e. six digits ONLY after decimal point

我该怎么做?

4 个答案:

答案 0 :(得分:2)

使用format

>>> format(5.2, '.6f')
'5.200000'

.6表示“到六位小数”,f表示浮点数。

要将其添加到现有代码中,请使用lambda作为map的参数,而不是str

print('The sum is=' + ":".join(map(lambda n: format(n, '.6f'), t4)))

您还可以使用生成器表达式替换map调用:

print('The sum is=' + ":".join(format(n, '.6f') for n in t4))

答案 1 :(得分:1)

print('The sum is={:.6f}:{:.6f}:{:.6f}'.format(*t4))

答案 2 :(得分:0)

t4.append("%.6f" % (float(num1)+float(num2)))

"%.6f" % anumber表示将数字转换为f个浮点数,然后在6

之后用.个数字格式化

答案 3 :(得分:0)

格式化可以使用%.6f进行最多6个小数位

t1=['1.99','2','133.37']
t2=['4.98','5','11116.98']
t3=list(zip(t1,t2))
t4=[]
print('The sum is='+ ":"),
for num1,num2 in t3:
    each_sum = float(num1)+float(num2)
    print(":%.6f"%each_sum),