python中退出多層循環(huán)的方法
1、定義標記變量;利用變量值的變化退出循環(huán)
# 第一種嵌套形式
a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]
# init_i = 0
# init_j = 0
flag = True
for i in range(3):
for j in range(3):
# print(i, j)
if a[i][j] == 5:
flag = False
init_i = i
init_j = j
break
if not flag:
break
print(init_i, init_j)
print(i, j)
# 第二種嵌套形式
flag = True
while flag:
for i in range(10):
print(x)
flag = False
break
2、使用函數(shù)配合return關(guān)鍵字 實現(xiàn)跳出循環(huán)(在函數(shù)內(nèi)部只要執(zhí)行完return語句 則直接退出函數(shù))
def test():
while True:
for x in range(10):
print(x)
return
test()
3、利用else continue 和外層的break跳出循環(huán)
a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]
init_i = 0
init_j = 0
flag = True
for i in range(3):
for j in range(3):
# print(i, j)
if a[i][j] == 5:
flag = False
init_i = i
init_j = j
break
else:
continue
break
# if not flag:
# break
print(init_i, init_j)
print(i, j)
while True:
for x in range(4):
print(x)
if x == 2:
break
else:
print("未執(zhí)行")
continue
break
python跳出多層循環(huán)的方法
今天同事問我一個python面試題,關(guān)于python跳出多層循環(huán),原來還真沒用過,網(wǎng)上一查還真有點意思,下面記錄一下:
Python 本身沒有“break n” 和“goto” 的語法,這也造成了Python 難以跳出多層(特定層數(shù))循環(huán)。下面是幾個跳出多層(特定層數(shù))循環(huán)的tip。
1、自定義異常
class getoutofloop(Exception): pass
try:
for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
raise getoutofloop()
else:
print i, '----', j, '----', k
except getoutofloop:
pass
2、封裝為函數(shù)return
def test():
for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
return
else:
print i, '----', j, '----', k
test()
3、for ... else ... 用法
上面的兩種都是只能跳出多層而不能跳出特定層數(shù)的循環(huán),接下來的這個正是為了跳出特定層數(shù)的循環(huán)。
for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
break
else:
print i, '----', j, '----', k
else: continue
break
else: continue
break
else在 while和for 正常循環(huán)完成之后執(zhí)行,和直接寫在 while和for 之后沒有區(qū)別,但是如果用break結(jié)束循環(huán)之后else就不會執(zhí)行了。這也是個很新奇的做法。
才知道原來可以作為跳出多層循環(huán)用。不過要是有多次跳出不同層的循環(huán)的需求,也沒轍了。
總結(jié)
以上所述是小編給大家介紹的python中退出多層循環(huán)的方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
相關(guān)文章
Python Django切換MySQL數(shù)據(jù)庫實例詳解
這篇文章主要介紹了Python Django切換MySQL數(shù)據(jù)庫實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07
Pycharm配置opencv與numpy的實現(xiàn)
本文總結(jié)了兩種方法來導入opencv與numpy包,第一種是直接在Pycharm中導入兩個包,第二種是在官網(wǎng)下載相關(guān)文件進行配置,感興趣的小伙伴們可以參考一下2021-07-07
Win11平臺安裝和配置NeoVim0.8.2編輯器搭建Python3開發(fā)環(huán)境詳細過程(2023最新攻略)
這篇文章主要介紹了Win11平臺安裝和配置NeoVim0.8.2編輯器搭建Python3開發(fā)環(huán)境(2023最新攻略),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-01-01
基于Python實現(xiàn)將列表數(shù)據(jù)生成折線圖
這篇文章主要介紹了如何利用Python中的pandas庫和matplotlib庫,實現(xiàn)將列表數(shù)據(jù)生成折線圖,文中的示例代碼簡潔易懂,需要的可以參考一下2022-03-03
Python定時查詢starrocks數(shù)據(jù)庫并將結(jié)果保存在excel
這篇文章主要為大家詳細介紹了Python如何實現(xiàn)定時查詢starrocks數(shù)據(jù)庫并將結(jié)果保存在excel,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下2025-03-03
詳解Python中高階函數(shù)(map,filter,reduce,sorted)的使用
高階函數(shù)就是能夠把函數(shù)當成參數(shù)傳遞的函數(shù)就是高階函數(shù),換句話說如果一個函數(shù)的參數(shù)是函數(shù),那么這個函數(shù)就是一個高階函數(shù)。本文為大家詳細講解了Python中常用的四個高階函數(shù),感興趣的可以了解一下2022-04-04

