我用 python 编程已经快两年了,当我看一些旧代码时,我发现了一件非常奇怪的事情。
import random, sys, time
try:
while True:
print(' ', str(random.randint(100,999)), end='')
time.sleep(0.01)
except:
sys.exit()
按照此代码的语法,我的程序应该永远打印一个空格和一个从 100 到 999 的随机数,但这并没有发生。
当我运行此代码时,屏幕上不会出现任何内容,直到我按 CTRL-C,即使删除 try 语句也不会改变任何内容。
我尝试更改控制台(Windows 终端、powershell 和 CMD),但没有任何反应。
有人可以帮我解决这个问题吗?谢谢
Python 将打印输出保存在缓冲区中,并在实际显示之前等待行尾。
要在Python 3中强制显示,可以添加关键字flush=True
.
import random, sys, time
try:
while True:
print(' ', str(random.randint(100,999)), end='', flush=True)
time.sleep(0.01)
except:
sys.exit()
或者,您可以:
- call
sys.stdout.flush()
打印之后(Python 2 兼容);
- use the
-u
执行脚本时标记(python -u script.py
);
- 设置环境变量
PYTHONUNBUFFERED
to TRUE
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)