【发布时间】:2020-05-21 17:45:28
【问题描述】:
我已经看到 tqdm 用于显示 for 循环的进度,但我想知道如何使用 while 循环来做到这一点。 我这里有一些代码可以获取任意次数翻转硬币的百分比:
def flipem():
global flips, completed_flips, heads, tails, head_amount, tail_amount, total_amount
while completed_flips != flips:
flip = randint(1, 2)
if flip == 1:
head_amount += 1
elif flip == 2:
tail_amount += 1
else:
pass
completed_flips += 1
total_amount += 1
if completed_flips == flips:
global head_percentage, tail_percentage
head_percentage = head_amount / total_amount * 100
tail_percentage = tail_amount / total_amount * 100
该代码本质上是接受用户的输入并多次掷硬币,然后给出正面和反面的百分比。
虽然发生这种情况,但我希望有一个进度条,但我不知道如何将 tqdm 与 while 循环一起使用。
有人知道如何或有替代方法吗? 谢谢。
编辑:顺便说一句,这段代码还有更多内容,但我决定不添加它,因为我认为它无关紧要。
【问题讨论】:
-
如何确定无限循环的进度?它要么在循环,要么不是。即 0% 或 100%。
-
@r.ook 这是一个非常好的观点。
-
在你的情况下,既然你确实知道你想达到多少
flips,请将tqdm包裹在for flip in range(len(flips)): ...周围 -
@r.ook 我在事先不知道翻转次数的情况下想出了如何做到这一点:
for i in tqdm(range(0, flips): -
我建议您添加您的评论作为您自己问题的答案,这将对未来的访问者遇到您的问题大有裨益。当你自己得出结论时,我不想抢走你的风头。获得一些支持:)
标签: python python-3.x progress-bar python-3.6 tqdm