为什么进度条会先打印,完成,然后再次打印并完成?

时间:2019-09-09 14:33:26

标签: python

编辑:好的,所以我将它放在另一个文件中并再次进行了测试,并且工作正常。谢谢大家,并非常感谢您对重构后的代码大为破坏!

我完成了一个(有效的)进度百分比,然后将自身和周围的所有打印语句打印两次。

我需要两个打印语句。注释掉printProgress(0, 100, suffix = 'complete')仅使其从1开始而不是0,并且仍然打印两次。

注释printProgress(x + 1, 100, suffix = 'complete')会导致 test printmplete test printmplete,这显然不理想。

注释print('\r%s%% %s' % (percent, suffix), end = '\r')会导致 test \n print test \n print,我认为这意味着问题出在for循环中的某个地方。但是在哪里?

这是我的其余代码。

def printProgress(iteration, total, suffix):

    # call in a loop to create terminal progress percentage
    # iteration - Required : current iteration (Int)
    # total     - Required : total iterations (Int)
    # suffix    - Optional : suffix string (Str)
    # decimals  - Optional : positive number of decimals in percent complete (Int)

    percent = ("{0:." + str(0) + "f}").format(100 * (iteration / float(total)))
    print('\r%s%% %s' % (percent, suffix), end = '\r')
    # print new line on completion
    if iteration == total:
        print()

print('test')
y = list(range(0, 100))
# start progress at 0
printProgress(0, 100, suffix = 'complete')

for x in y:
    time.sleep(.01)
    # update progress bar
    printProgress(x + 1, 100, suffix = 'complete')
print('print')```

# Here's my expected output:
test
100% complete
print

# Here's my actual output:
test
100% complete
print
test
100% complete
print

0 个答案:

没有答案