如何在Python 3中休眠并保持在同一输出行?
嘿,这事儿不难!我来给你实现这个在同一行动态更新数字的效果,核心就是利用Python的print参数和退格字符来控制光标位置,话不多说直接上代码和解释:
基础实现(数字都是1位的情况)
先看针对你示例里1、2、3的简单版本:
import time # 循环打印1到3 for num in range(1, 4): # 打印当前数字,不换行,强制刷新确保立刻显示 print(num, end='', flush=True) # 停1秒让你能看清当前数字 time.sleep(1) # 用退格符\b把光标移回去,覆盖之前的数字 print('\b', end='', flush=True)
进阶版本(适配多位数数字)
如果之后要打印的数字位数会变化(比如从9到10),上面的单退格就不够用了,这时候可以根据数字的长度生成对应数量的退格符:
import time # 循环打印1到10,覆盖多位数情况 for num in range(1, 11): print(num, end='', flush=True) time.sleep(1) # 生成和当前数字长度相同的退格符,完全清除之前的内容 print('\b' * len(str(num)), end='', flush=True)
关键知识点解释
end='':让print函数不自动添加换行符,保持光标在同一行flush=True:强制刷新输出缓冲区,避免因为缓冲导致内容不及时显示\b:退格转义字符,能让光标向左移动一位,后续打印的内容会覆盖当前光标位置的字符time.sleep(1):控制每次更新的间隔,这里是1秒
这样运行起来,数字就会在同一行不断更新,而不是依次换行或者连在一起啦!
内容的提问来源于stack exchange,提问作者ashutosh_paul
相关产品推荐
相关产品推荐

