嗯,我已经读过stdout是行缓冲的。但是代码在Pydroid 3(不知道确切版本)和Python 3.8.3中的工作方式不同。
import time
print('Hello', end = '')
time.sleep(5)
print('World')
在Pydroid 3中,至少在5秒后(至少在之后)打印Hello和World,而在Python 3.8.3中,首先打印Hello,在5秒后打印World。
为什么代码工作方式不同?
这可能不是Python版本问题,而是其他终端问题。
[某些终端(或更准确地说,文件/流,包括stdout
)仅在换行符之后刷新(第一个print
不具有换行符,而其他终端在每次写入后都可以刷新。
要强制冲洗,您可以使用flush=True
as a param to print,请尝试以下操作:
flush=True