婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python中for后接else的語法使用

Python中for后接else的語法使用

熱門標(biāo)簽:富錦商家地圖標(biāo)注 沈陽防封電銷卡品牌 如何申請400電話費(fèi)用 江西省地圖標(biāo)注 武漢外呼系統(tǒng)平臺 池州外呼調(diào)研線路 外呼系統(tǒng)哪些好辦 沈陽外呼系統(tǒng)呼叫系統(tǒng) 沈陽人工外呼系統(tǒng)價(jià)格

0、背景

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

1、試驗(yàn)

# 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正常結(jié)束后,break中的語句進(jìn)行了執(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

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

2、總結(jié)

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

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

官方文檔也有解釋:

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

補(bǔ)充:python里for和else的搭配

用找質(zhì)數(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 代碼塊

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

寫一個(gè)簡單例子,用來輔助理解

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

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

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

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

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • python使用for...else跳出雙層嵌套循環(huán)的方法實(shí)例
  • Python for循環(huán)搭配else常見問題解決
  • python for和else語句趣談
  • Python中在for循環(huán)中嵌套使用if和else語句的技巧
  • Python的for和break循環(huán)結(jié)構(gòu)中使用else語句的技巧

標(biāo)簽:潛江 銅川 呂梁 阿里 黑龍江 通遼 株洲 常德

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python中for后接else的語法使用》,本文關(guān)鍵詞  Python,中,for,后接,else,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python中for后接else的語法使用》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python中for后接else的語法使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 清水河县| 车险| 寻甸| 遂川县| 宁乡县| 阳朔县| 吴旗县| 渭南市| 太仓市| 弋阳县| 柳江县| 旅游| 兖州市| 正安县| 美姑县| 泗阳县| 天峻县| 巴南区| 长子县| 牙克石市| 日土县| 东乡县| 乌拉特前旗| 石楼县| 永寿县| 涡阳县| 岫岩| 舒兰市| 玉田县| 瑞安市| 资中县| 和平区| 乌拉特中旗| 永仁县| 南宁市| 浦城县| 花莲县| 南平市| 定结县| 新密市| 开化县|