我想檢查一個串列中是否有低于某個數字的任何值(例如檢查任何低于 100 的值),然后如果任何值滿足此條件,則執行一個函式,但我只想執行該函式一次,無論有多少值滿足標準。我在只執行一次函式時遇到了麻煩。
list = [97, 98, 99, 100, 101, 102]
for num in list:
if num < 100:
execute_function()
每次找到值時都會執行該函式。我只想執行一次,而我正在為如何執行此操作畫一個空白。謝謝。
uj5u.com熱心網友回復:
您可以致電any()測驗是否有任何號碼符合條件。
if any(num < 100 for num in list):
execute_function();
uj5u.com熱心網友回復:
break使您脫離最內層的包含回圈 ( for, while)。
for num in list:
if num < 100:
execute_function()
break
此外,如果不滿足條件,您可以添加一個操作
for num in list:
if num < 100:
execute_function()
break
else:
print("no numbers less that 100")
在這種情況下,else如果沒有中斷,則運行。
uj5u.com熱心網友回復:
我理解你的問題意味著如果execute_function已經運行,你想繼續回圈,你只希望它運行一次。如果這是真的,你可以只創建一個布爾變數等于False說被設定為True當execute_function首次運行。
list = [97, 98, 99, 100, 101, 102]
ran_already = False
for num in list:
if num < 100 and ran_already == False:
ran_already = True
execute_function()
uj5u.com熱心網友回復:
from typing import Optional, Union
class Handler:
@staticmethod
def check_data(data: Optional[Union[list, tuple]], criteria_value: int) -> bool:
return any(num == criteria_value for num in data)
@staticmethod
def execute_function():
print('execute')
if __name__ == '__main__':
uncheck_data = [1, 2, 3]
criteria = 4
if Handler.check_data(data=uncheck_data, criteria_value=criteria):
Handler.execute_function()
else:
print('checked, no value meet criteria_value: {}'.format(criteria))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/339615.html
上一篇:為什么我的回圈在滿足條件時停止
