Python逐字符延迟打印耗时过长且整句一次性输出问题
解决Python逐字符延迟打印的缓冲问题
问题根源在于Python的标准输出缓冲机制:默认情况下print采用行缓冲模式,当你用end=""让输出不换行时,字符会暂存到输出缓冲区,直到程序结束或缓冲区被强制刷新,才会一次性输出所有内容。
解决方案:强制刷新输出缓冲区
修改print语句,添加flush=True参数,让每次打印后立即刷新缓冲区:
import time sentence = "Whats Up My buddies!" start = time.time() for character in sentence: print(character, end="", flush=True) # 新增flush=True强制刷新 time.sleep(0.6) end = time.time() print("\nElapsed time:", end - start, "seconds") # 换行让计时信息单独显示
原理说明
flush=True会绕过缓冲区限制,直接将当前字符输出到终端,确保逐字符按间隔显示。- 调整后总耗时仍约12秒(对应20个字符×0.6秒/字符),但输出行为完全符合预期。
内容的提问来源于stack exchange,提问作者Rohan Banerjee
相关产品推荐
相关产品推荐

