python中退出多層循環(huán)的方法
1、定義標(biāo)記變量;利用變量值的變化退出循環(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)鍵字 實(shí)現(xiàn)跳出循環(huán)(在函數(shù)內(nèi)部只要執(zhí)行完return語(yǔ)句 則直接退出函數(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)的方法
今天同事問(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): 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),接下來(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ù)大家的!
相關(guān)文章
Python實(shí)現(xiàn)提取指定名稱的文件并批量復(fù)制到其他文件夾
本文介紹基于Python語(yǔ)言,讀取一個(gè)文件夾,并將其中每一個(gè)子文件夾內(nèi)符合名稱要求的文件加以篩選,并將篩選得到的文件復(fù)制到另一個(gè)目標(biāo)文件夾中的方法,需要的朋友可以參考下2023-10-10
python格式化輸出實(shí)例(居中、靠右及靠左對(duì)齊)
所謂格式化輸出就是數(shù)據(jù)按照某種特殊的格式和要求進(jìn)行輸出,下面這篇文章主要給大家介紹了關(guān)于python格式化輸出(居中、靠右及靠左對(duì)齊)的相關(guān)資料,文中介紹了format方式、其他擴(kuò)展寫法以及'%'方式,需要的朋友可以參考下2022-04-04
在OpenCV里實(shí)現(xiàn)條碼區(qū)域識(shí)別的方法示例
這篇文章主要介紹了在OpenCV里實(shí)現(xiàn)條碼區(qū)域識(shí)別的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
在Python中的Django框架中進(jìn)行字符串翻譯
這篇文章主要介紹了在Python中的Django框架中進(jìn)行字符串翻譯的一些初步方法,Django中還提供了待翻譯字符串檢測(cè)工具,需要的朋友可以參考下2015-07-07
python+opencv邊緣提取與各函數(shù)參數(shù)解析
這篇文章主要介紹了python+opencv邊緣提取與各函數(shù)參數(shù)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Python機(jī)器學(xué)習(xí)應(yīng)用之基于BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)篇詳解
BP(back?propagation)神經(jīng)網(wǎng)絡(luò)是1986年由Rumelhart和McClelland為首的科學(xué)家提出的概念,是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),是應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一2022-01-01
PyTorch中常見(jiàn)損失函數(shù)的使用詳解
損失函數(shù),又叫目標(biāo)函數(shù),是指計(jì)算機(jī)標(biāo)簽值和預(yù)測(cè)值直接差異的函數(shù),本文為大家整理了PyTorch中常見(jiàn)損失函數(shù)的簡(jiǎn)單解釋和使用,希望對(duì)大家有所幫助2023-06-06

