You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中print()的end参数为何导致time.sleep()下的延迟输出?

为什么使用print()的end参数会导致输出延迟?

这本质是Python的输出缓冲机制在起作用,和end参数本身无关,只是end参数的用法刚好触发了缓冲的特殊表现:

  • Python默认会对标准输出(stdout)做缓冲处理,目的是减少I/O操作次数、提升程序性能。缓冲区的刷新时机通常有三种:
    1. 缓冲区被填满时
    2. 输出内容包含换行符\n时(针对终端输出场景)
    3. 程序执行结束时自动刷新

结合你的三段代码就能对应理解:

  1. 第一段代码用默认的end='\n',每次print(i)都会输出换行符,触发缓冲区即时刷新,所以能每隔2秒看到一行输出。
  2. 第二段代码把end设为空格" ",输出内容里没有换行符,每次打印的内容都被暂存在缓冲区里,直到整个循环结束(累计等待10秒)才一次性刷新输出,所以看起来是延迟到最后才显示所有内容。
  3. 第三段代码添加flush=True参数,强制print()函数在每次执行时立刻刷新缓冲区,跳过缓冲等待逻辑,因此能按照预期每隔2秒输出一个数字。

内容的提问来源于stack exchange,提问作者Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:15:40