我需要在 Python 中制作一个在 x%
处打印的进度条。
因此,例如,如果该值为 62%,是否有办法打印出这样的内容?
▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯ 62%
或者,例如,23%
▮▮▮▮▮▮▮▮▮▮▮▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯ 23%
最佳答案
使用 print()
的 end
参数的纯解决方案:
print()
语句允许您指定在调用结束时打印最后的 chars
。默认情况下,end
设置为 '\r\n'
,这是一个回车符和换行符。这会将“光标”移动到下一行的开头,这在大多数情况下都是您想要的。
但是对于进度条,您希望能够在进度条上打印回来,这样您就可以更改当前位置和百分比,而最终结果不会在多行上看起来很糟糕。
为此,我们需要将 end
参数设置为一个回车符:'\r'
。这将使我们的当前位置回到行首,以便我们可以在进度条上重新打印
。
为了演示这是如何工作的,我编写了这个简单的小代码,每 0.5
秒将进度条增加 1%
。代码的关键部分是 print
语句,因此您可能会将这部分带走并放入主脚本中。
import time, math
bl = 50 #the length of the bar
for p in range(101):
chars = math.ceil(p * (bl/100))
print('▮' * chars + '▯' * (bl-chars), str(p) + '%', end='\r')
time.sleep(0.5)
(注意,此处使用的字符是从您的问题 ('▮, ▯') 中复制的,对我来说,它们没有打印到控制台,在这种情况下,您需要将它们替换为其他字符,例如:' █' 和 '.')
这段代码做你想做的事情并稳步增加百分比,下面是一个例子,说明当 p = 42
时它的样子:
▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯ 42%
关于python - 如何在 python 中取得进展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46141302/