Python新手如何实现逐字符在同一行打印并添加等待延迟
解决方案
Python的print()函数默认会在输出末尾添加换行符,同时标准输出默认采用行缓冲机制,这两个点是你无法实现同行逐字打印的核心原因,调整方法如下:
核心修改点
修改print()的两个参数即可实现需求:
- 把
end参数设为空字符串'',替代默认的换行符\n,避免每次打印自动换行 - 新增
flush=True参数,强制立刻刷新输出缓冲区,保证字符会在等待时间前打印到终端,不会攒到最后一次性输出
修改后代码(保留pygame依赖)
import pygame pygame.init() print("Hi", end='', flush=True) pygame.time.wait(1000) print(".", end='', flush=True) pygame.time.wait(500) print(".", end='', flush=True) pygame.time.wait(500) print(".", end='', flush=True) # 如果需要在所有内容打印完成后换行,可以加下面这句 print()
轻量替代方案(无需依赖pygame)
如果只是做控制台打印效果,可以用Python标准库time的sleep()方法实现等待,不需要额外安装第三方库:
import time print("Hi", end='', flush=True) time.sleep(1) print(".", end='', flush=True) time.sleep(0.5) print(".", end='', flush=True) time.sleep(0.5) print(".", end='', flush=True) print()
内容的提问来源于stack exchange,提问作者VirusGOATS
相关产品推荐
相关产品推荐

