簡體   English   中英

帶中斷的基本python while循環

[英]basic python while loop with break

我有一個基本的python問題。

我正在查詢有時對時間敏感的 API。 我想在 python 中編寫一個循環來實現這一點。 我想要的功能如下:

查詢(返回r),如果查詢成功返回則繼續返回r。

如果沒有,我想以增量方式向查詢的參數添加一些時間(因此可能是 for 循環,for i in range(24 (hours)): 然后一次添加一小時,直到查詢有效。

如果在上面的 for 循環之后查詢不起作用,則有一些日志錯誤消息。

我正在努力使 while/for 循環的順序正確。 我可以進行一些嘗試,但我認為如果將其放入偽代碼中會更有用:

While True:
  if (r is not successful):
    i = 0:
    while i <= 24:
    add time and query again
    r <-- return query with new time
    i += 1
.......
return r

像這樣,當查詢正確返回時如何退出循環?

我也不相信我的偽代碼正是我想要的。

這能行嗎?

def run_api():
    if success:
        return results
    else:
        return False

While True:
    results = run_api()
    if results:
        break
    else:
        sleep (however you have it coded)
return results

您可以使用 .time() 函數。

import time

while True:
    results = query()

    if results:
        print(results) #or return to any datatype as required.

        time.sleep(wait_period_to_next_query)   #to be given in seconds

        break #if you want to exit the loop after 1 successful query
    else:
        print('Query unsuccessful, retrying after wait period.')
        time.sleep(wait_period)    #wait_period to be given in seconds

如果要連續查詢 API,可以省略斷行。

暫無
暫無

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

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