所以我按照YouTube的一个教程学习了一个进度条,当它完成时,一个额外的"%"出现了. (注意:我更改了代码中的一些变量,以获得所需的产品.) 视频链接:https://www.youtube.com/watch?v=x1eaT88vJUA&ab_channel=NeuralNine

import math
import colorama

def progress_bar(progress, total, color=colorama.Fore.YELLOW):
    percent=100 * (progress / float(total))
    bar='■' * int(percent) + '-' * (100 - int(percent))
    print(color + f"\r|{bar}| {percent: .0f}%", end="\r")
    if progress==total:
        print(colorama.Fore.GREEN + f"\r|{bar}| {percent:.0f}%", end="\r")
numbers=[x * 5 for x in range(1000)]
results=[]
progress_bar(0, len(numbers))
for i, x in enumerate(numbers):
    results.append(math.factorial(x))
    progress_bar(i + 1, len(numbers))
print(colorama.Fore.RESET)

我try 了许多不同的方法来修复它,我找到的唯一一种方法是从代码中完全删除"%".

推荐答案

问题很简单.

程序在相同的终端线上绘制条形,覆盖以前的文本.最后3行如下所示:

yellow bar|  99%
yellow bar|  100%
 green bar| 100%_
                ^

如你所见,最后一条黄线比最后一条绿线长,最后一个字符没有被覆盖.

一种解决方法是不要先用黄色再用绿色来画100%的线.

更新:正如操作员所指出的,长度差异是由于缺少空格,他以这种方式修复了它.

Python相关问答推荐

OpenCV轮廓.很难找到给定图像的所需轮廓

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

在用于Python的Bokeh包中设置按钮的样式

Tensorflow tokenizer问题.num_words到底做了什么?

python的文件. truncate()意外地没有截断'

Django.core.exceptions.SynchronousOnlyOperation您不能从异步上下文中调用它-请使用线程或SYNC_TO_ASYNC

利用SCIPY沿第一轴对数组进行内插

在round函数中使用列值

如何将一个文件的多列导入到Python中的同一数组中?

如何在Pandas中用迭代器求一个序列的平均值?

将像素信息写入文件并读取该文件

对于数组中的所有元素,Pandas SELECT行都具有值

使用pythonminidom过滤XML文件

Python:使用asyncio.StreamReader.readline()读取长行

是否将列表分割为2?

Pip:卸载`-e`安装过程中安装的所有pkgs

有条件的滚动平均数(面试问题)

在Polars中, Select 所有以Pattern结尾的列,并添加不带Pattern的新列

在Python中使用xpath和selenium Select HTML元素

如何对牛郎星中的径向曲线值进行任意排序?