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该死的是的,这太有道理了!太愚蠢了,我自己都没意识到。