python从多层循环嵌套中退出_python中退出多层循环的方法
1、定義標記變量;利用變量值的變化退出循環 # 第一種嵌套形式
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、使用函數配合return關鍵字 實現跳出循環(在函數內部只要執行完return語句 則直接退出函數) def test():
while True:
for x in range(10):
print(x)
return
test()
3、利用else continue 和外層的break跳出循環 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("未執行")
continue
break
python跳出多層循環的方法
今天同事問我一個python面試題,關于python跳出多層循環,原來還真沒用過,網上一查還真有點意思,下面記錄一下:
Python 本身沒有“break n” 和“goto” 的語法,這也造成了Python 難以跳出多層(特定層數)循環。下面是幾個跳出多層(特定層數)循環的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、封裝為函數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 ... 用法
上面的兩種都是只能跳出多層而不能跳出特定層數的循環,接下來的這個正是為了跳出特定層數的循環。 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 正常循環完成之后執行,和直接寫在 while和for 之后沒有區別,但是如果用break結束循環之后else就不會執行了。這也是個很新奇的做法。
才知道原來可以作為跳出多層循環用。不過要是有多次跳出不同層的循環的需求,也沒轍了。
總結
以上所述是小編給大家介紹的python中退出多層循環的方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
總結
以上是生活随笔為你收集整理的python从多层循环嵌套中退出_python中退出多层循环的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 线性拟合polyfit_从
- 下一篇: python参数顺序 元组 字典_pyt