Python使用sleep命令内联打印
为什么会出现以下代码Python使用sleep命令内联打印,python,python-2.7,Python,Python 2.7,为什么会出现以下代码 from __future__ import print_function from time import sleep def print_inline(): print("Hello ", end='') sleep(5) print("World") print_inline() 等待睡眠完成后打印Hello World,不应打印Hello,然后等待5秒钟,在同一行中打印World?不,不应。“Hello”位于输出缓冲区中,直到有理由将其
from __future__ import print_function
from time import sleep
def print_inline():
print("Hello ", end='')
sleep(5)
print("World")
print_inline()
等待睡眠完成后打印Hello World
,不应打印Hello
,然后等待5秒钟,在同一行中打印World
?不,不应。“Hello”位于输出缓冲区中,直到有理由将其刷新到输出设备。在这种情况下,“原因”就是程序的结束。如果您想要延迟效果,请添加
import sys
sys.stdout.flush()
就在你的睡眠声明之前
另请参阅更完整的讨论。如果您将第一个
打印设置为:
print("Hello ", end='', flush=True)
这应该打印Hello
,然后睡眠5分钟,然后打印World
编辑:这只适用于Python3,没有看到Python2.7标记
import sys
sys.stdout.flush()
这用于强制Python的print函数在屏幕上显示。
另请参见。您是否尝试在第一个print()
中设置flush=True
?Thank@McGlothlin的可能副本。但是,这在python2.7上不起作用,#TypeError:“flush”是此函数的无效关键字参数!让我看看你在Python2.7中是如何做到这一点的…@MustafaS看起来Prune满足了你的需要。对不起!