Python的print语句后跟sleep(...)函数提供了意外的输出

Aka*_*tak 1 python python-3.x

这是我的Python 3代码:

from time import sleep
s='what is your name'
for x in s:
    print(x,end='')
    sleep(1)
Run Code Online (Sandbox Code Playgroud)

我期望的是,每封信在延迟一秒钟后将一一打印。但是,当我运行该程序时,需要花费len(s)几秒钟的时间,然后输出的值s。谁能向我解释实际情况。

Aus*_*tin 6

使用flush参数print运行:

print(x, end='', flush=True)
Run Code Online (Sandbox Code Playgroud)

文档

通常是否由文件决定是否对输出进行缓冲,但是如果flush关键字参数为true,则将强制刷新流。