为什么Progress Bar总是达到99%?

时间:2015-11-06 10:07:30

标签: python python-2.7 python-3.x

我在python中为进度条编写了一个小程序。但是这个程序总是达到99%。始终存在1%的不准确度。以下是我的代码。

import time
import sys

for i in range(100):
    time.sleep(1)
    sys.stdout.write("\r%d%%" % i)
    percent = float(i)/100
    hashes = '#' * int(percent * 50)
    spaces = '-' * (50 - len(hashes))
    sys.stdout.write("\rPercent: [{0}] {1}%".format(hashes + spaces, int(percent * 100)))
    sys.stdout.flush()

在上述程序中,始终存在1%的不准确度。如果我将范围取为100然后计算%;我的进度条保持在99%,如果范围是50,我的进度条保持在98%。任何人都可以告诉我,如果我在这里做错了吗?

1 个答案:

答案 0 :(得分:5)

这是因为range(100)会输出[0, 1, ..., 99]的列表。您需要在此处使用range(101)。干杯!