2017-04-11 79 views
1

真的很煩我試圖解決這個問題。我可以解釋一下自己: 我需要例如每秒打印5個字符串,所以在1秒鐘內我需要打印這5個字符串,然後是下一個另一個5. 如何分割循環的時間量(如我認爲它應該是)在一秒鐘內運行,所以我可以在那段時間打印5個字符串,並在相同的時間內打印?如何在Y時間內打印X數量的字符串?

["text1", "text2", "text3", "text4", "text5"] 

每一個打印200毫秒?

如何在循環中控制每次迭代的時間?

回答

3
import time 

start=time.time()  
for k in tablestrings: 
    print k 
    time.sleep(0.2) 

將正常工作,但如果你可以給你一些問題尋找高精度

import time 

start=time.time()  
for k in range(len(tablestrings)): 
    release=False 
    while not release: 
     if time.time()>start+0.2*k: 
      release=True 
    print tablestrings[k] 

應該從每1秒打印1次得到更少規則

+0

我會試着讓你知道 – Menticolcito

+0

現在你的代碼在Python控制檯中運行良好。它可能在IPython控制檯中運行得更少,可能是由於緩衝。爲了在那裏工作,你應該在print語句之後添加一行來刷新輸出緩衝區'sys.stdout.flush()'。這確實改善了印刷,但還不完美。 –

+0

謝謝,最後我只是迭代k整數,我稱之爲tablestrings [k]。你的建議更優雅,但由於它似乎有點不那麼普遍,我堅持我的醜陋習慣。 – WNG

相關問題