Python - 从分部打印%

时间:2014-10-17 06:54:16

标签: python string format

我在下面用以产生百分比:

L = ['aa', 'bb']

for row, each in enumerate(l):
    percent = float(row)/150 * 100
    print "{0:.0f}%".format(percent)

我想要的是分别有“0%”和“0.67%”,但它给出“0%”和“1%”。

以什么方式我可以纠正它?感谢。

2 个答案:

答案 0 :(得分:3)

来自官方documentation

  

'f' - 定点。将数字显示为定点数。默认精度为6.

     

...

     

精度是一个十进制数,表示在用'f'和'F'格式化的浮点值的小数点后应显示多少位数。

所以你可以说小数点后你想要多少位数。

>>> "{0:.2f}%".format(123.4567)
'123.46%'
>>> 
>>> "{0:.5f}%".format(123.4567)
'123.45670%'

所以将其更改为:"{0:.2f}%".format(percent)并且for循环行中也有拼写错误,它应为enumerate(L)

L = ['aa', 'bb']

for row, each in enumerate(L):
    percent = float(row)/150 * 100
    print "{0:.2f}%".format(percent)

打印

0.00%
0.67%

答案 1 :(得分:3)

你需要知道你想要的小数点后的数字。

for row, each in enumerate(L):
    percent = float(row)/150 * 100
    print "{0:.02f}%".format(percent)

输出: -

0.00%
0.67%

print "{0:.02f}%".format(percent)

输出: - 0.667%