use*_*624 5 python printing python-3.x
我用 python 编程将近 2 年了,我在看一些旧代码时发现了一件非常奇怪的事情。
import random, sys, time
try:
while True:
print(' ', str(random.randint(100,999)), end='')
time.sleep(0.01)
except:
sys.exit()
Run Code Online (Sandbox Code Playgroud)
按照这段代码的语法,我的程序应该永远打印一个空格和一个从 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()
Run Code Online (Sandbox Code Playgroud)
或者,您可以:
sys.stdout.flush()打印后调用(Python 2 兼容);-u执行脚本时使用该标志 ( python -u script.py);PYTHONUNBUFFERED为TRUE.| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |