簡體   English   中英

計算while循環中的迭代次數

[英]Count iterations in while loop

Python中有沒有辦法自動向while循環添加迭代計數器?

我想從以下代碼片段中刪除count = 0count += 1 ,但仍然能夠計算迭代次數並針對布爾值elapsed < timeout測試:

import time

timeout = 60
start = time.time()

count = 0
while (time.time() - start) < timeout:
    print 'Iteration Count: {0}'.format(count)
    count += 1
    time.sleep(1)

最徹底的方法可能是將其轉換為一個無限for循環測試回路以及移動到身體的開始:

import itertools

for i in itertools.count():
    if time.time() - start >= timeout:
        break
    ...

您可以改為將 while 循環移動到生成器並使用enumerate

import time

def iterate_until_timeout(timeout):
    start = time.time()

    while time.time() - start < timeout:
        yield None

for i, _ in enumerate(iterate_until_timeout(10)):
    print "Iteration Count: {0}".format(count)
    time.sleep(1)

暫無
暫無

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

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