2013-04-04 25 views
2

我正在編寫一個應該在控制檯上打印文本的代碼,每個字母都應該稍微延遲一段時間。我試過類似這樣的東西Python代碼,控制檯文本上的時間延遲

from time import sleep 
print "H", sleep(0.1), "e", sleep(0.1), "l", sleep(0.1), "l", sleep(0.1), "o" 

但它會隨機放置「無」。我該怎麼辦? 請幫助:?:

回答

4

sleep返回無,打印出來。你可以print沒有一個換行符,然後將每個字符睡覺:

import sys 
from time import sleep 

for c in "Hello": 
    print c,  # note the comma 
    sleep(0.1) 
print    # the final newline 

,但爲了避免其間的空間,你必須做這樣的事情:

import sys 
from time import sleep 

for c in "Hello": 
    sys.stdout.write(c) 
    sleep(0.1) 
sys.stdout.write('\n') 
您的環境

Depeding,您可能需要也刷新標準輸出緩衝區:

import sys 
from time import sleep 

for c in "Hello": 
    sys.stdout.write(c) 
    sys.stdout.flush() 
    sleep(0.1) 
sys.stdout.write('\n') 
sys.stdout.flush() 
+0

謝謝,應該這樣做:D – user2245252 2013-04-04 14:27:24

0

您需要使用單獨的打印做到這一點:

from time import sleep 

print "H", 
sleep(0.1) 
print "e", 
sleep(0.1) 
# ... 

請注意,使用像這樣的打印將在字符之間留下一些空白。

您看到None打印的原因是因爲sleep返回None並且您的腳本嘗試打印sleep返回的內容。

+0

okey,謝謝你:D – user2245252 2013-04-04 14:28:04