如何在Python 3中立即使用end=" "打印?
我该怎么用打印语句不换行,并且立即执行呢?
因为这样:
print("first", end=" ")
time.sleep(5)
print("second")
会在5秒后同时打印出:
first second
但我想先写'first',等五秒后再写'second'...
2 个回答
-1
你也可以这样做:
import sys, time
sys.stdout.write("First ")
time.sleep(5)
sys.stdout.flush()
sys.stdout.write("Second\n")
4
你需要刷新一下 stdout
:
print("first", end=" ", flush=True)
stdout
是行缓冲的,这意味着每次你打印一个换行符时,缓冲区的内容会被刷新到屏幕上。如果你没有打印换行符,就需要手动刷新。
对于还没有使用 Python 3.3 或更新版本的人来说,flush
这个参数是在 3.3 版本中新增的。对于早期版本,你可以手动刷新 stdout
:
import sys
print("first", end=" ")
sys.stdout.flush()