2017-03-29 27 views
1

我試着寫這個劇本後,對方用一秒的延遲在同一行,只是打印數量,但它不工作。末參數打印會導致不同的行爲與time.sleep

防爆工作的:

from time import sleep 

for n in range(1, 11): 
    print(n) 
    sleep(1) 

但這不,程序只是凍結:

from time import sleep 

for n in range(1, 11): 
    print(n, end="") 
    sleep(1) 

誰能解釋這是爲什麼?

+0

ops,我現在加了end =「」 –

回答

2

程序不結冰,你只需要通過傳遞flush=True沖洗流:

print(n, end="", flush=True) 

sys.stdout,即print默認使用流,是行緩衝(在交互模式時),如在the documentation指出:

  • 當互動,標準流線緩衝

這意味着,當用於end\n)遇到默認字符串,以flush通話將被製成。使用其他字符串(即'')不會觸發flush ing,因此您必須使用flush=True強制執行此操作。

相關問題