国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Python中for后接else的語法使用

瀏覽:5日期:2022-06-19 13:27:31
0、背景

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

1、試驗

# eg1import numpy as npfor i in np.arange(5): print ielse: print('hello?')# 0# 1# 2# 3# 4# hello?

可以發現,在for正常結束后,break中的語句進行了執行。

# eg2import numpy as npfor i in np.arange(5): print i if (i == 3):breakelse: print('hello?')# 0# 1# 2# 3

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

2、總結

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

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

官方文檔也有解釋:

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的搭配

用找質數作為代碼示例

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 代碼塊

根據官方文檔的解釋理解的意思:當迭代的對象迭代完并為空時,位于else的語句將會執行,而如果在for循環里有break時,則會直接終止循環,并不會執行else里的代碼

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

for i in range(10): if i == 7:print(’found it %s’%i)breakelse: print(’not found’)

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

補充:python中for—else的用法,執行完for執行else

結束for循環后執行else

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

Python中for后接else的語法使用

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 武乡县| 贺兰县| 平度市| 鞍山市| 满洲里市| 嘉义市| 城口县| 班戈县| 新河县| 九龙城区| 临沧市| 公安县| 咸丰县| 宁都县| 满洲里市| 华阴市| 台山市| 宜丰县| 郎溪县| 岐山县| 章丘市| 苏尼特左旗| 浦县| 武强县| 蚌埠市| 瑞丽市| 阿勒泰市| 伊春市| 常熟市| 屯留县| 河西区| 靖远县| 那坡县| 龙川县| 金华市| 武功县| 泰来县| 安仁县| 卓资县| 驻马店市| 科尔|