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

Python中斷多重循環(huán)的思路總結(jié)

 更新時間:2019年10月04日 15:00:29   作者:愛喝馬黛茶的安東尼  
在本文里小編給大家整理的是關(guān)于Python中斷多重循環(huán)的思路以及相關(guān)知識點(diǎn),有需要的朋友們可以學(xué)習(xí)下。

I. 跳出單循環(huán)

不管是什么編程語言,都有可能會有跳出循環(huán)的需求,比如枚舉時,找到一個滿足條件的數(shù)就終止。跳出單循環(huán)是很簡單的,比如:

for i in range(10):

  if i > 5:

    print i

    break

然而,我們有時候會需要跳出多重循環(huán),而break只能夠跳出一層循環(huán),比如:

for i in range(10):

  for j in range(10):

    if i+j > 5:

      print i,j

      break

這樣的代碼并非說找到一組 i+j > 5就停止,而是連續(xù)找到10組,因?yàn)閎reak只跳出了for j in range(10)這一重循環(huán)。那么,怎么才能跳出多重呢?在此記錄備忘一下。

II. 跳出多重循環(huán)

事實(shí)上,Python的標(biāo)準(zhǔn)語法是不支持跳出多重循環(huán)的,所以只能利用一些技巧,大概的思路有:寫成函數(shù)、利用笛卡爾積、利用調(diào)試。

當(dāng)然最常用的思路是使用變量標(biāo)記法

def f():

  flag = 0

  for i in range(10):

    for j in range(i):

      if i+j>5:

        print i,j

        flag = 1

        break

    if flag == 1:

      break

if __name__ == "__main__":

  f()

寫成函數(shù)

在Python中,函數(shù)運(yùn)行到return這一句就會停止,因此可以利用這一特性,將功能寫成函數(shù),終止多重循環(huán)。

例如:

def work():

  for i in range(10):

    for j in range(10):

      if i+j > 5:

        return i,j

print work()

利用笛卡爾積

這種方法的思路就是,既然可以跳出單循環(huán),我就將多重循環(huán)改寫為單循環(huán),這可以利用itertools中的笛卡爾積函數(shù)product,例如:

from itertools import product

for i,j in product(range(10), range(10)):

  if i+j > 5:

    print i,j

    break

利用調(diào)試模式

笛卡爾積的方式很巧妙,也很簡潔,但它只能用于每次循環(huán)的集合都是獨(dú)立的情形,假如每層循環(huán)都與前一層緊密相關(guān),就不能用這種技巧了。這時候可以用第一種方法,將它寫成函數(shù),另外,還可以利用調(diào)試模式。這個利用了調(diào)試模式中,只要出現(xiàn)報錯就退出的原理,它偽裝了一個錯誤出來。

class Found(Exception):

  pass

try:

  for i in range(10):

    for j in range(i): #第二重循環(huán)跟第一重有關(guān)

      if i + j > 5:

        raise Found

except Found:

  print i, j

以上就是盤點(diǎn)Python中斷多重循環(huán)的思路的詳細(xì)內(nèi)容,更多請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Flask進(jìn)階之構(gòu)建RESTful?API和數(shù)據(jù)庫交互操作

    Flask進(jìn)階之構(gòu)建RESTful?API和數(shù)據(jù)庫交互操作

    這篇文章主要為大家介紹了Flask進(jìn)階之構(gòu)建RESTful API和數(shù)據(jù)庫交互操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Tortoise-orm信號實(shí)現(xiàn)及使用場景源碼詳解

    Tortoise-orm信號實(shí)現(xiàn)及使用場景源碼詳解

    這篇文章主要為大家介紹了Tortoise-orm信號實(shí)現(xiàn)及使用場景源碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • PyTorch中torch.tensor與torch.Tensor的區(qū)別詳解

    PyTorch中torch.tensor與torch.Tensor的區(qū)別詳解

    這篇文章主要介紹了PyTorch中torch.tensor與torch.Tensor的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Python中字典創(chuàng)建、遍歷、添加等實(shí)用操作技巧合集

    Python中字典創(chuàng)建、遍歷、添加等實(shí)用操作技巧合集

    這篇文章主要介紹了Python中字典創(chuàng)建、遍歷、添加等實(shí)用操作技巧合集,本文講解了字典中常見方法列表、創(chuàng)建字典的五種方法、字典中鍵值遍歷方法等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • Python face_recognition實(shí)現(xiàn)AI識別圖片中的人物

    Python face_recognition實(shí)現(xiàn)AI識別圖片中的人物

    最近碰到了照片識別的場景,正好使用了face_recognition項目,給大家分享分享。face_recognition項目能做的很多,人臉檢測功能也是有的,是一個比較成熟的項目。感興趣的可以了解一下
    2022-01-01
  • pytorch 刪除空權(quán)重模型文件夾的方法

    pytorch 刪除空權(quán)重模型文件夾的方法

    如果文件夾exp開頭的文件夾,里面沒有pt pth模型文件,就把目錄刪掉,本文通過示例代碼介紹pytorch 刪除空權(quán)重模型文件夾的方法,感興趣的朋友一起看看吧
    2023-11-11
  • 使用pyinstaller逆向.pyc文件

    使用pyinstaller逆向.pyc文件

    這篇文章主要介紹了使用pyinstaller逆向.pyc文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 在python中利用opencv簡單做圖片比對的方法

    在python中利用opencv簡單做圖片比對的方法

    今天小編就為大家分享一篇在python中利用opencv簡單做圖片比對的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python常駐任務(wù)實(shí)現(xiàn)接收外界參數(shù)代碼解析

    Python常駐任務(wù)實(shí)現(xiàn)接收外界參數(shù)代碼解析

    這篇文章主要介紹了Python常駐任務(wù)實(shí)現(xiàn)接收外界參數(shù)代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Python中@property的理解和使用示例

    Python中@property的理解和使用示例

    這篇文章主要介紹了Python中@property的理解和使用,結(jié)合實(shí)例形式分析了Python中@property的功能、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-06-06

最新評論