簡體   English   中英

如何減慢Python中的循環?

[英]How can I slow down a loop in Python?

如果我有一個清單l:

l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

有沒有辦法控制以下for循環,以便列表中的下一個元素僅在前一個后打印一秒?

for i in l:
    print i

換句話說,有沒有辦法優雅地減慢Python中的循環?

你可以使用time.sleep

import time

for i in l:
    print i
    time.sleep(1)

如果你使用time.sleep(1) ,你的循環將運行一秒多一點,因為循環和打印也需要一些時間。 更好的方法是在第二秒的剩余時間內睡覺。 您可以使用-time.time()%1來計算它

>>> import time
>>> L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> for i in L:
...     time.sleep(-time.time()%1)
...     print i
... 

通過使用print i, repr(time.time())很容易觀察到這一點

>>> for i in L:
...     time.sleep(-time.time()%1)
...     print i, repr(time.time())
... 
0 1368580358.000628
1 1368580359.001082
2 1368580360.001083
3 1368580361.001095
4 1368580362.001149
5 1368580363.001085
6 1368580364.001089
7 1368580365.001086
8 1368580366.001086
9 1368580367.001085

VS

>>> for i in L:
...     time.sleep(1)
...     print i, repr(time.time())
... 
0 1368580334.104903
1 1368580335.106048
2 1368580336.106716
3 1368580337.107863
4 1368580338.109007
5 1368580339.110152
6 1368580340.111301
7 1368580341.112447
8 1368580342.113591
9 1368580343.114737

您可以使用time.sleep暫停代碼執行:

import time

for i in l:
    print(i)
    time.sleep(1)

使用time.sleep函數。 只需在你的函數中執行time.sleep(1)

使用time.sleep(number)

for i in range(i)
print(1)
time.sleep(0.05)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM