欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中退出多層循環(huán)的方法

 更新時(shí)間:2018年11月27日 11:27:37   作者:你說的都好  
這篇文章主要介紹了python中退出多層循環(huán)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

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語句 則直接退出函數(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)的方法

今天同事問我一個(gè)python面試題,關(guān)于python跳出多層循環(huán),原來還真沒用過,網(wǎng)上一查還真有點(diǎn)意思,下面記錄一下:

Python 本身沒有“break n” 和“goto” 的語法,這也造成了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),接下來的這個(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 之后沒有區(qū)別,但是如果用break結(jié)束循環(huán)之后else就不會(huì)執(zhí)行了。這也是個(gè)很新奇的做法。

才知道原來可以作為跳出多層循環(huán)用。不過要是有多次跳出不同層的循環(huán)的需求,也沒轍了。

總結(jié)

以上所述是小編給大家介紹的python中退出多層循環(huán)的方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

  • python去除字符串中的換行符

    python去除字符串中的換行符

    這篇文章主要介紹了python去除字符串中的換行符的相關(guān)資料,然后在文章下面給大家補(bǔ)充介紹了python去除空格和換行符的方法,需要的朋友可以參考下
    2017-10-10
  • Python中的類對象示例詳解

    Python中的類對象示例詳解

    這篇文章主要介紹了Python中類對象示例的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python實(shí)現(xiàn)提取指定名稱的文件并批量復(fù)制到其他文件夾

    Python實(shí)現(xiàn)提取指定名稱的文件并批量復(fù)制到其他文件夾

    本文介紹基于Python語言,讀取一個(gè)文件夾,并將其中每一個(gè)子文件夾內(nèi)符合名稱要求的文件加以篩選,并將篩選得到的文件復(fù)制到另一個(gè)目標(biāo)文件夾中的方法,需要的朋友可以參考下
    2023-10-10
  • python格式化輸出實(shí)例(居中、靠右及靠左對齊)

    python格式化輸出實(shí)例(居中、靠右及靠左對齊)

    所謂格式化輸出就是數(shù)據(jù)按照某種特殊的格式和要求進(jìn)行輸出,下面這篇文章主要給大家介紹了關(guān)于python格式化輸出(居中、靠右及靠左對齊)的相關(guān)資料,文中介紹了format方式、其他擴(kuò)展寫法以及'%'方式,需要的朋友可以參考下
    2022-04-04
  • 在OpenCV里實(shí)現(xiàn)條碼區(qū)域識(shí)別的方法示例

    在OpenCV里實(shí)現(xiàn)條碼區(qū)域識(shí)別的方法示例

    這篇文章主要介紹了在OpenCV里實(shí)現(xiàn)條碼區(qū)域識(shí)別的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 在Python中的Django框架中進(jìn)行字符串翻譯

    在Python中的Django框架中進(jìn)行字符串翻譯

    這篇文章主要介紹了在Python中的Django框架中進(jìn)行字符串翻譯的一些初步方法,Django中還提供了待翻譯字符串檢測工具,需要的朋友可以參考下
    2015-07-07
  • python+opencv邊緣提取與各函數(shù)參數(shù)解析

    python+opencv邊緣提取與各函數(shù)參數(shù)解析

    這篇文章主要介紹了python+opencv邊緣提取與各函數(shù)參數(shù)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python多任務(wù)及返回值的處理方法

    python多任務(wù)及返回值的處理方法

    今天小編就為大家分享一篇python多任務(wù)及返回值的處理方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python機(jī)器學(xué)習(xí)應(yīng)用之基于BP神經(jīng)網(wǎng)絡(luò)的預(yù)測篇詳解

    Python機(jī)器學(xué)習(xí)應(yīng)用之基于BP神經(jīng)網(wǎng)絡(luò)的預(yù)測篇詳解

    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中常見損失函數(shù)的使用詳解

    PyTorch中常見損失函數(shù)的使用詳解

    損失函數(shù),又叫目標(biāo)函數(shù),是指計(jì)算機(jī)標(biāo)簽值和預(yù)測值直接差異的函數(shù),本文為大家整理了PyTorch中常見損失函數(shù)的簡單解釋和使用,希望對大家有所幫助
    2023-06-06

最新評論