Python:显示操作的百分比

Python:显示操作的百分比,python,Python,我正在做一些关于几行数据的事情。这需要很长时间,我想展示一下进度的百分比 因此,我有以下代码: for y in range(0, height): if (y * 100 / height).is_integer(): print("... ", int(y * 100 / height), "%") height是需要处理的行数 然而,不知何故,这段代码没有打印正确的百分比。如果高度为100,则工作正常。对于4050,它每2个百分比打印一次(0%、2%、4%,…)。

我正在做一些关于几行数据的事情。这需要很长时间,我想展示一下进度的百分比

因此,我有以下代码:

for y in range(0, height):
    if (y * 100 / height).is_integer():
        print("... ", int(y * 100 / height), "%")
height
是需要处理的行数

然而,不知何故,这段代码没有打印正确的百分比。如果高度为100,则工作正常。对于4050,它每2个百分比打印一次(0%、2%、4%,…)。2025年每4个百分比打印一次


为什么会发生这种情况?我该如何修复它呢?

我并不以我的代码为荣,但无论如何:

last = -1 # Start it as -1, so that it still prints 0%.
for y in range(0, height):
    work = int(y * 100 / height) # I assigned the percentage to a variable for neatness.
    if work != last: # so it doesn't print the same percent over and over.
        print("... ", work, "%")
    last = work # Reset 'last'.
这可能/可能不完全准确。但它是有效的

出现问题的原因是,is_integer()仅在特定值上为真


希望这有帮助

如果你在repl中模拟前几次迭代,你很容易就会明白为什么——从
i
第次迭代到
i+1
第次迭代可能很容易从0.8%完成到1.2%完成,两者都不是整数。嗯,看起来很不错。尽管如此,我还是想知道答案:P@leaf+1介绍这个lib:)@Cameron该死的是的,这太有道理了!太愚蠢了,我自己都没意识到。