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

Python中for循环内time.sleep未按预期工作的问题

解决Python for循环中time.sleep不生效的问题

你的问题出在输出缓冲机制上,Python的print函数默认会缓冲输出内容,当你用end=" "时,输出不会立刻刷新到控制台,而是等缓冲区满或者程序结束才一次性打印,所以看起来sleep没生效。

修复方法

有两种常用方式:

  • 在print里加上flush=True参数,强制刷新缓冲区:
import time as t
def main():
    a = "hello word"
    for i in a:
        t.sleep(0.1)
        print(i, end=" ", flush=True)
       
main()
  • 或者在程序开头手动刷新输出缓冲(适合全局设置):
import sys
import time as t
sys.stdout.flush()
def main():
    a = "hello word"
    for i in a:
        t.sleep(0.1)
        print(i, end=" ")
       
main()

原理说明

Python的标准输出(stdout)是行缓冲模式,默认遇到换行符\n才会自动刷新缓冲区。你用end=" "替换了默认的换行符,导致缓冲区一直没触发刷新动作,所有字符都攒到程序结束才一起输出,sleep的暂停效果被掩盖了。加上flush=True会强制每次print后立刻把内容输出到控制台,就能看到逐个字符延迟打印的效果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:45:31