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

Python中跳出循環(huán)的兩種方法

 更新時間:2024年09月20日 11:54:33   作者:在線碼BUG  
在 Python 中,跳出循環(huán)通常指的是使用 break 語句來結(jié)束一個循環(huán)結(jié)構(gòu),比如 for 循環(huán)或 while 循環(huán),當程序執(zhí)行到 break 語句時,循環(huán)會立即終止,程序會繼續(xù)執(zhí)行循環(huán)后面的代碼,本文給大家介紹了Python中跳出循環(huán)的兩種方法,需要的朋友可以參考下

我們經(jīng)常遇到循環(huán)在進行到某一個特定的值時,需要跳出循環(huán),或跳過這個值,python中早已為我們準備了這樣的參數(shù):break,continue

比如下面的for循環(huán):

for i in range(1,10):
    print('循環(huán)了',i,'次')

結(jié)果顯而易見如圖: 

當我們想在第三次結(jié)束這個循環(huán)時可以用break這個參數(shù)來跳出循環(huán),代碼如下

for i in range(1,10):
    if i==3:
        break
    else:
        print('循環(huán)了',i,'次')

這是for循環(huán)就只會進行兩次循環(huán)就會停止,如果如下:

還有一種參數(shù)continue,這個參數(shù)表示的是跳出本次循環(huán),即本次循環(huán)不參與運算,代碼使用如下:

for i in range(1,10):
    if i==3:
        continue
    else:
        print('循環(huán)了',i,'次')

結(jié)果如下:

當i=3時,循環(huán)是不進行的也就沒有了輸出結(jié)果。 

拓展:Python 跳出嵌套循環(huán)的5種方法

很多人說 Python 是給很優(yōu)雅的語言,但凡事都有個弱點,有些時候?qū)τ谀撤N情況,用 Python 實現(xiàn)起來卻不那么"優(yōu)雅"。

例如下面的例子,我們想要跳出這個嵌套循環(huán):

for a in list_a:

for b in list_b:

if condition(a,b):

break

關鍵詞 break 只能跳出這個循環(huán)中的內(nèi)循環(huán)。那有沒有什么方法一次性跳出所有循環(huán)? Python 里有沒有哪個內(nèi)置的關鍵詞可以實現(xiàn)呢?

不幸的的是,沒有。

有句老話講的好,"沒有對比就沒有傷害", Python 做不到,其它的語言卻可以,比如萬人鄙視的 PHP:

foreach ($a_list as $a)

{

foreach ($b_list as $b)

{

if (condition($a, $b))

{

break 2; // 跳出兩次循環(huán)

}

}

}

在 PHP 里 break 關鍵詞后面跟著一個數(shù)組,表示要跳出循環(huán)的次數(shù),默認值是1,表示跳出一次循環(huán)。

這是一個很簡潔命令的解決方案,這里必須夸一句 PHP,這里它表現(xiàn)的不錯。

不過 Python 畢竟是很靈活的語言,我們有很多方法可以解決上面的問題,下面我就介紹 5 中跳出嵌套循環(huán)的方法。

1. 使用"旗幟"變量

這是個有效的解決方案,我們定義一個變量,作為一個"旗幟",例如:

# 添加"旗幟"變量

break_out_flag = False

for i in range(5):

for j in range(5):

if j == 2 and i == 0:

break_out_flag = True

break

if break_out_flag:

break

如上面的代碼,break_out_flag 作為一個"旗手"告訴這個程序該跳出這個外循環(huán)了。

這個代碼在執(zhí)行上沒什么問題,不過這顯得我們的代碼有點亂,因為我們引用了新的變量去解決這個問題,這個新變量并非非要引入的。

2. 引發(fā)異常

如果 break 關鍵詞不能達到我們的期望,那么是否可以引入其他的操作呢,比如 Python 的異常處理技術,我們可以使用它跳出嵌套循環(huán):

# 引發(fā)異常

try:

for i in range(5):

for j in range(5):

if j == 2 and i == 0:

raise StopIteration

except StopIteration:

pass

就如上面代碼所示,我們把異常"exception"當做關鍵詞 break 使用,這樣就可以一次跳出所有循環(huán)。

3. 使用相同的條件語句

由于一個條件語句可以中斷一次循環(huán),那么使用相同的條件語句同樣也可以再一次中斷一個循環(huán),例如:

# 使用相同的條件語句

for i in range(5):

for j in range(5):

if j == 2 and i == 0:

break

if j == 2 and i == 0:

break

上面的代碼可行,但并不是一個好的解決方案,至少在效率上很差,因為重復執(zhí)行一個條件語句會浪費很多時間。

4. 使用 For-Else 語句

Python 里有一個很特殊的語句:"for-else"。 它并不流行以至于很少有人知道它,因為習慣上 else 是搭配 if 來使用。

不過對于這個問題,它卻是很有幫助:

# 使用 For-Else 語句

for i in range(5):

for j in range(5):

if j == 2 and i == 0:

break

else: # 僅在內(nèi)循環(huán)不中斷時執(zhí)行

continue

break

上面的代碼中顯示了 for-else 語句的優(yōu)勢,因為 else 下面的語句只有當內(nèi)循環(huán)執(zhí)行完成并沒有任何中斷的時候才執(zhí)行。

如果對 for-else 還不熟悉,可以看一下下面的代碼,是 for-else "翻譯"過來的寫法:

# 和 for-else 一樣的

for i in range(5):

for j in range(5):

if j == 2 and i == 0:

break

if not (j == 2 and i == 0):

continue

break

總之,這個方法很可以,就是 for-else 這種形式不好理解。

5. 將嵌套循環(huán)放在一個函數(shù)里

如果我們將嵌套循環(huán)放在一個函數(shù)中,那么跳出嵌套循環(huán)是非常簡單的,因為我們可以使用 return 這個關鍵詞替代 break 。

# 將嵌套循環(huán)放在一個函數(shù)里

def check_sth():

for i in range(5):

for j in range(5):

if j == 2 and i == 0:

return

check_sth() # 執(zhí)行這個函數(shù)

如上所示,這個解決方案就顯得更加優(yōu)雅了,既不需要"旗幟"變量,也不需要異常處理或是 for-else 語法以及多余的條件判斷。

函數(shù)的用法在 Python 里是很靈活的,我們可以很容易的創(chuàng)建一個嵌套函數(shù)或是一個閉包函數(shù)。如果這個跳出嵌套循環(huán)的函數(shù)在調(diào)用它的函數(shù)里只使用一次,那么我們可以這樣寫:

def out_func():

# 這里干點啥

def check_sth():

for i in range(5):

for j in range(5):

if j == 2 and i == 0:

return

# 這里干點別的

check_sth() # 執(zhí)行這個函數(shù)

# 這里繼續(xù)干

不過,使用嵌套函數(shù)看起來并不怎么"優(yōu)雅"。

總結(jié)

這里我們了解了5種跳出嵌套循環(huán)的方法,雖然每種方法都沒有 PHP 來的簡單直接,但我們也是可以實現(xiàn)這樣的操作地。作為編程人員我們應該了解語言的特性,在不同情況下用不同的方法解決問題。

到此這篇關于Python中跳出循環(huán)的兩種方法的文章就介紹到這了,更多相關Python跳出循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 在Pycharm中對代碼進行注釋和縮進的方法詳解

    在Pycharm中對代碼進行注釋和縮進的方法詳解

    今天小編就為大家分享一篇在Pycharm中對代碼進行注釋和縮進的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python爬蟲基礎之requestes模塊

    Python爬蟲基礎之requestes模塊

    這篇文章主要介紹了Python爬蟲基礎之requestes模塊,文中有非常詳細的代碼示例,對正在學習python爬蟲的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python iter()函數(shù)用法實例分析

    Python iter()函數(shù)用法實例分析

    這篇文章主要介紹了Python iter()函數(shù)用法,結(jié)合實例形式詳細分析了Python iter()函數(shù)的功能、使用方法及相關操作注意事項,需要的朋友可以參考下
    2018-03-03
  • pandas dataframe rolling移動計算方式

    pandas dataframe rolling移動計算方式

    在Pandas中,rolling()方法用于執(zhí)行移動窗口計算,常用于時間序列數(shù)據(jù)分析,例如,計算某商品的7天或1個月銷售總量,可以通過rolling()輕松實現(xiàn),該方法的關鍵參數(shù)包括window(窗口大?。?min_periods(最小計算周期)
    2024-09-09
  • python3.0 模擬用戶登錄,三次錯誤鎖定的實例

    python3.0 模擬用戶登錄,三次錯誤鎖定的實例

    下面小編就為大家?guī)硪黄猵ython3.0 模擬用戶登錄,三次錯誤鎖定的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 利用tkinter改變下拉列表(Combobox)的選項值

    利用tkinter改變下拉列表(Combobox)的選項值

    這篇文章主要介紹了利用tkinter改變下拉列表(Combobox)的選項值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Django項目使用CircleCI的方法示例

    Django項目使用CircleCI的方法示例

    這篇文章主要介紹了Django項目使用CircleCI的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python 使用tf-idf算法計算文檔關鍵字權重并生成詞云的方法

    Python 使用tf-idf算法計算文檔關鍵字權重并生成詞云的方法

    這篇文章主要介紹了Python 使用tf-idf算法計算文檔關鍵字權重,并生成詞云,本文通過實例代碼給大家介紹的非常想詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Python Map 函數(shù)詳解

    Python Map 函數(shù)詳解

    這篇文章主要為大家介紹了Python Map 函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 在Python中使用xlrd和xlwt讀寫Excel文件代碼實例

    在Python中使用xlrd和xlwt讀寫Excel文件代碼實例

    這篇文章主要介紹了在Python中使用xlrd和xlwt讀寫Excel文件代碼實例,python操作excel主要用到xlrd和xlwt兩個庫,即xlrd是讀excel,xlwt是寫excel庫,文中提供了部分實例代碼,需要的朋友可以參考下
    2023-08-08

最新評論