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

Python中for后接else的語法使用

 更新時間:2021年05月18日 14:49:10   作者:weijian001  
這篇文章主要介紹了Python中for后接else的語法使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

0、背景

今天看到了一個比較詭異的寫法,for后直接跟了else語句,起初還以為是沒有縮進好,查詢后發(fā)現(xiàn)果然有這種語法,特此分享。之前寫過c++和Java,在for后接else還是第一次見。

1、試驗

# eg1
import numpy as np
for i in np.arange(5):
    print i
else:
    print("hello?")
# 0
# 1
# 2
# 3
# 4
# hello?

可以發(fā)現(xiàn),在for正常結束后,break中的語句進行了執(zhí)行。

# eg2
import numpy as np
for i in np.arange(5):
    print i
    if (i == 3):
        break
else:
    print("hello?")
# 0
# 1
# 2
# 3

在這個例子當中,i==3的時候break出了循環(huán),然后else當中的語句就沒有執(zhí)行。

2、總結

總結起來比較簡單,如果for循環(huán)正常結束,else中語句執(zhí)行。如果是break的,則不執(zhí)行。

工程性代碼寫的比較少,暫時沒有想到很好的場景,為了不對其他同學造成干擾,這種形式還是少些一點較好。

官方文檔也有解釋:

When the items are exhausted (which is immediately when the sequence is empty), the suite in the else clause, if present, is executed, and the loop terminates.

A break statement executed in the first suite terminates the loop without executing the else clause's suite. A continue statement executed in the first suite skips the rest of the suite and continues with the next item, or with the else clause if there was no next item.

https://docs.python.org/2/reference/compound_stmts.html#the-for-statement

補充:python里for和else的搭配

用找質數(shù)作為代碼示例

for i in range(2,10):
    for n in range(2,i):
        if i % n == 0:
            #print(i, '=', n, '*', i//n)
            break
    else:
        print('found it %s' %i)

注意:這里的 else 并不屬于 if 代碼塊

根據官方文檔的解釋理解的意思:當?shù)膶ο蟮瓴榭諘r,位于else的語句將會執(zhí)行,而如果在for循環(huán)里有break時,則會直接終止循環(huán),并不會執(zhí)行else里的代碼

寫一個簡單例子,用來輔助理解

for i in range(10):
    if i == 7:
        print('found it %s'%i)
        break
else:
    print('not found')

可以先運行代碼,看一下運行結果,然后將代碼塊里的break注釋掉再運行一遍,與第一次運行的結果進行比較,就會發(fā)現(xiàn)不同

補充:python中for—else的用法,執(zhí)行完for執(zhí)行else

結束for循環(huán)后執(zhí)行else

for i in range(5):
     print(i)
else:
    print("打印else")

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python在日志中隱藏明文密碼的方法

    Python在日志中隱藏明文密碼的方法

    logging日志模塊是python的一個內置模塊,該模塊定義了一些函數(shù)和類,為上層應用程序或庫實現(xiàn)了一個強大而又靈活的日志記錄系統(tǒng),這篇文章主要介紹了Python如何在日志中隱藏明文密碼?,需要的朋友可以參考下
    2023-10-10
  • Cpython解釋器中的GIL全局解釋器鎖

    Cpython解釋器中的GIL全局解釋器鎖

    這篇文章主要介紹了Cpython解釋器中的GIL全局解釋器鎖的相關資料,幫助大家更好的了解Cpython解釋器,感興趣的朋友可以了解下
    2020-11-11
  • 深入探討PythonLogging模塊的高級用法與性能優(yōu)化

    深入探討PythonLogging模塊的高級用法與性能優(yōu)化

    在Python應用程序中,日志處理是一項至關重要的任務,本文將探索Logging模塊的高級用法,包括日志級別、格式化、處理程序等方面的功能,需要的可以參考下
    2024-04-04
  • python使用pandas處理excel文件轉為csv文件的方法示例

    python使用pandas處理excel文件轉為csv文件的方法示例

    這篇文章主要介紹了python使用pandas處理excel文件轉為csv文件的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Django使用Celery異步任務隊列的使用

    Django使用Celery異步任務隊列的使用

    這篇文章主要介紹了Django使用Celery異步任務隊列的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 簡介二分查找算法與相關的Python實現(xiàn)示例

    簡介二分查找算法與相關的Python實現(xiàn)示例

    這篇文章主要介紹了二分查找算法與相關的Python實現(xiàn)示例,Binary Search同時也是算法學習當中最基礎的知識,需要的朋友可以參考下
    2015-08-08
  • Python多進程入門、分布式進程數(shù)據共享實例詳解

    Python多進程入門、分布式進程數(shù)據共享實例詳解

    這篇文章主要介紹了Python多進程入門、分布式進程數(shù)據共享,結合實例形式詳細分析了Python進程操作技巧數(shù)據共享相關實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2019-06-06
  • python獲取外網ip地址的方法總結

    python獲取外網ip地址的方法總結

    這篇文章主要介紹了python獲取外網ip地址的方法,實例總結了四種常用的獲取外網IP地址的技巧,需要的朋友可以參考下
    2015-07-07
  • 詳解Python如何與?java高效的交互

    詳解Python如何與?java高效的交互

    這篇文章主要為大家介紹了詳解Python如何與java高效的交互的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 詳解python如何在django中為用戶模型添加自定義權限

    詳解python如何在django中為用戶模型添加自定義權限

    這篇文章主要介紹了python如何在django中為用戶模型添加自定義權限,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10

最新評論