我在几行数据上做了一些事情。这需要很长时间,我想显示进度的百分比。
所以我有以下代码:
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%打印一次...
为什么会这样?我该如何解决?
答案 0 :(得分:2)
对我的代码并不感到自豪,但无论如何:
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()仅对特定值有效。
希望这有帮助!