如何在Python 3中立即使用end=" "打印?

1 投票
2 回答
816 浏览
提问于 2025-04-17 22:57

我该怎么用打印语句不换行,并且立即执行呢?

因为这样:

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()

撰写回答