用\ r清除Python中的行

问题描述 投票:0回答:1

所以我试图在Python中创建一个进度条,在for循环中我写了这个:

print(i, end='\r', flush=True)
sleep(0.1)

所以它应该写0然后1等。但我得到类似的东西:

0123456789101112131415161718192021222324252627282930313233343536373839

我究竟做错了什么?

更新:我正在使用Spyder。

这是整个循环:

for i in range(it):
    _sum += z**i * f(i)
    print(i, end='\r', flush=True)
    sleep(0.1)
python python-3.x progress-bar flush
1个回答
0
投票

这对我来说非常有用,很难说你的代码有什么问题,因为你只发布了小数代码

如果您使用带有列表的for循环,则必须正确格式化。如果您打算使用无序编号,请使用列表。

import time
numbers = ['1','2','3','4','5','6','7']

for number in numbers:
    print(number, end='\r', flush=True)
    time.sleep(0.5)

如果需要顺序枚举,则可以使用规范表达式:

for number in range(20):
    print(number, end='\r', flush=True)
    time.sleep(1)

或者如果你想使用while循环

import time
n = 0
while n <= 15:
    n += 1
    print(n, end='\r', flush=True)
    time.sleep(0.5)

所有三个循环按预期工作,并且几乎以相同的方式工作

© www.soinside.com 2019 - 2024. All rights reserved.