1、定義標(biāo)記變量;利用變量值的變化退出循環(huán)
# 第一種嵌套形式a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]# init_i = 0# init_j = 0flag = Truefor 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: breakprint(init_i, init_j)print(i, j)# 第二種嵌套形式flag = Truewhile flag: for i in range(10): print(x) flag = False break
2、使用函數(shù)配合return關(guān)鍵字 實(shí)現(xiàn)跳出循環(huán)(在函數(shù)內(nèi)部只要執(zhí)行完return語(yǔ)句 則直接退出函數(shù))
def test(): while True: for x in range(10): print(x) returntest()
3、利用else continue 和外層的break跳出循環(huán)
a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]init_i = 0init_j = 0flag = Truefor 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: # breakprint(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)的方法
今天同事問(wèn)我一個(gè)python面試題,關(guān)于python跳出多層循環(huán),原來(lái)還真沒(méi)用過(guò),網(wǎng)上一查還真有點(diǎn)意思,下面記錄一下:
Python 本身沒(méi)有“break n” 和“goto” 的語(yǔ)法,這也造成了Python 難以跳出多層(特定層數(shù))循環(huán)。下面是幾個(gè)跳出多層(特定層數(shù))循環(huán)的tip。
1、自定義異常
class getoutofloop(Exception): passtry: 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, '----', kexcept 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, '----', ktest()
3、for ... else ... 用法
上面的兩種都是只能跳出多層而不能跳出特定層數(shù)的循環(huán),接下來(lái)的這個(gè)正是為了跳出特定層數(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 之后沒(méi)有區(qū)別,但是如果用break結(jié)束循環(huán)之后else就不會(huì)執(zhí)行了。這也是個(gè)很新奇的做法。
才知道原來(lái)可以作為跳出多層循環(huán)用。不過(guò)要是有多次跳出不同層的循環(huán)的需求,也沒(méi)轍了。
總結(jié)
以上所述是小編給大家介紹的python中退出多層循環(huán)的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
新聞熱點(diǎn)
疑難解答
圖片精選