如何使用 tqdm 显示 while 循环的进度?

How can I use tqdm to show the progress of a while loop?

我见过 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

该代码本质上是接受用户的输入并多次掷硬币,然后给出正面和反面的百分比。

发生这种情况时,我希望有一个进度条,但我不知道如何使用带有 while 循环的 tqdm。

有人知道怎么做或有其他选择吗? 谢谢

编辑:顺便说一句,这段代码还有更多内容,但我决定不添加它,因为我认为它无关紧要。

正如@r.ook所说:如何确定无限循环的进度?它要么正在循环,要么不是。即 0% 或 100%。 所以, tqdm 仅适用于 for 循环。 解决方案:

for i in tqdm(range(0, flips):

这样,即使事先不知道迭代次数,它仍然会显示进度条。