Python如何逐字符打印字符串模拟打字效果?现有代码逐行延迟如何解决?
问题原因
Python的标准输出默认开启行缓冲机制,打印的字符会先暂存在输出缓冲区中,只有遇到换行符、缓冲区被填满、程序主动退出时才会一次性将缓冲区内容输出到终端。你原有代码每次打印单个字符后没有主动刷新缓冲区,所有字符会攒到每一行的换行符出现时才集中输出,因此出现整行打印后才延迟的现象。
解决方案
修改print语句,新增flush=True参数,强制每次打印后立刻刷新输出缓冲区即可实现逐字符输出的打字效果,修改后的代码如下:
import time a = """Hello my name is XYZ How are you? """ b = list(a) def conti(lst): for alphabet in lst: print(alphabet, end='', flush=True) time.sleep(0.01) conti(b)
如果需要调整打字速度,修改time.sleep()的传入数值即可,数值越大打字速度越慢。
内容的提问来源于stack exchange,提问作者Umesh N
相关产品推荐
相关产品推荐

