最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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組,因為break只跳出了for j in range(10)這一重循環(huán)。那么,怎么才能跳出多重呢?在此記錄備忘一下。

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

事實上,Python的標準語法是不支持跳出多重循環(huán)的,所以只能利用一些技巧,大概的思路有:寫成函數(shù)、利用笛卡爾積、利用調(dià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ù)運行到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)的集合都是獨立的情形,假如每層循環(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

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

相關(guān)文章

  • 一行Python代碼實現(xiàn)為圖片上版權(quán)

    一行Python代碼實現(xiàn)為圖片上版權(quán)

    不知道大家會不會遇到這樣的情況,自己辛辛苦苦整理的攻略,分享給自己的一些朋友,結(jié)果分享有人堂而皇之地拿著這份攻略圖片去引流,并聲稱是自己整理的,真是豈有此理!本文就來用Python實現(xiàn)為圖片上版權(quán),需要的可以參考一下
    2023-01-01
  • Python標準庫pickle的簡單使用

    Python標準庫pickle的簡單使用

    本文主要介紹了Python標準庫pickle的簡單使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Python基于checksum計算文件是否相同的方法

    Python基于checksum計算文件是否相同的方法

    這篇文章主要介紹了Python基于checksum計算文件是否相同的方法,涉及Python針對二進制文件的讀取與判定技巧,需要的朋友可以參考下
    2015-07-07
  • 使用tensorflow將圖片灰度化以及遇到的坑解決

    使用tensorflow將圖片灰度化以及遇到的坑解決

    這篇文章主要介紹了使用tensorflow將圖片灰度化以及遇到的坑解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python PyQt5運行程序把輸出信息展示到GUI圖形界面上

    Python PyQt5運行程序把輸出信息展示到GUI圖形界面上

    這篇文章主要介紹了Python PyQt5運行程序把輸出信息展示到GUI圖形界面上,本文通過截圖實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Python設(shè)計模式優(yōu)雅構(gòu)建代碼全面教程示例

    Python設(shè)計模式優(yōu)雅構(gòu)建代碼全面教程示例

    Python作為一門多范式的編程語言,提供了豐富的設(shè)計模式應(yīng)用場景,在本文中,我們將詳細介紹 Python 中的各種設(shè)計模式,包括創(chuàng)建型、結(jié)構(gòu)型和行為型模式
    2023-11-11
  • Python解析json代碼實例解析

    Python解析json代碼實例解析

    這篇文章主要介紹了Python解析json代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • python使用 __init__初始化操作簡單示例

    python使用 __init__初始化操作簡單示例

    這篇文章主要介紹了python使用 __init__初始化操作,結(jié)合實例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計中使用__init__進行初始化操作相關(guān)技巧與注意事項,需要的朋友可以參考下
    2019-09-09
  • python使用logging模塊發(fā)送郵件代碼示例

    python使用logging模塊發(fā)送郵件代碼示例

    這篇文章主要介紹了python使用logging模塊發(fā)送郵件代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python異步編程之yield?from的用法詳解

    Python異步編程之yield?from的用法詳解

    yield?from?是Python3.3?后新加的語言結(jié)構(gòu),可用于簡化yield表達式的使用,這篇文章主要為大家詳細介紹了yield?from的用法,需要的可以了解一下
    2023-12-12

最新評論

秭归县| 富川| 井研县| 育儿| 岳普湖县| 齐河县| 甘南县| 洱源县| 土默特右旗| 平顶山市| 龙胜| 姜堰市| 芦山县| 翼城县| 石林| 满洲里市| 邛崃市| 四子王旗| 山西省| 江津市| 广水市| 汽车| 城口县| 贵德县| 云浮市| 安多县| 长泰县| 中阳县| 固安县| 惠来县| 营山县| 伽师县| 砚山县| 大连市| 阿拉善盟| 普格县| 高雄市| 武邑县| 临江市| 奉贤区| 台北市|