python 3 print(i,end ='')在IDLE中工作,但在终端中不工作

时间:2016-03-16 23:52:31

标签: python-3.x

我在StackOverflow&上搜索过其他地方,但没有发现为什么会发生这种情况的线索。但是,如果有人提出要求,我会事先道歉。先前已回答&我错过了。

我在OS X 10.11.3上使用Python 3.5.1。当我在IDLE shell中运行(例如)以下代码时......

 import time
 for i in range(0,101):
     print(i,end=' ')
     time.sleep(0.5)

...它按照我的意图完成,并在屏幕上以每半秒1个数字+空格的速率打印0到100。但是当我在终端中以交互方式运行相同的代码时,在屏幕上同时打印序列0到100之前有50秒的等待时间。如果从脚本运行代码,并且在Windows环境中也运行相同的行为。

我是编码/ Python的新手,所以请原谅任何天真,但请有人对此有所了解吗?

由于

斯图尔特

1 个答案:

答案 0 :(得分:0)

每次你向stdout和sleep一起写东西时,你需要sys.stdout.flush()。

from time import sleep
import sys

for i in range(1,100):
    print(i, end=' ')
    sys.stdout.flush()
    sleep(0.5)

这对你有用。更多信息:some other stack overflow question