2016-03-16 80 views
0

我在其他地方的StackOverflow &上搜索过,但没有发现可能发生这种情况的线索。不过,如果已提前回复&回答&我错过了它,所以我提前道歉。python 3 print(i,end ='')在IDLE中工作,但不在终端中

我在OS X 10.11.3上使用Python 3.5.1。当我运行在IDLE外壳(例如)下面的代码...

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

...它做什么,我打算和打印0到100在屏幕上以1号+空格每半速率第二。但是当我在终端中以交互方式运行相同的代码时,在序列0到100同时在屏幕上全部打印的情况下等待50秒。如果代码是从脚本运行的,并且在Windows环境中也会发生相同的行为。

我是新来的编码/ Python,所以请原谅任何天真,但请任何人都可以摆脱这个光?

感谢

斯图尔特

回答

0

你需要sys.stdout.flush()每次你写的东西到stdout和睡眠时间。

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

+0

erhesto谢谢。试过这个,现在工作正常。 – e55en

+0

@ e55en,如果这个答案对您有帮助,请考虑将其标记为已接受(在答案的左上角):) – marcelm

相关问题