中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么使用for else語句

發布時間:2021-12-17 14:46:56 來源:億速云 閱讀:148 作者:iii 欄目:大數據

這篇文章主要介紹“Python中怎么使用for else語句”,在日常操作中,相信很多人在Python中怎么使用for else語句問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python中怎么使用for else語句”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

任何編程語言都提供了 if…else… 語句,表示如果(if)滿足條件就做某件事,否則(else)就做另外一件事:

if a==b:
   print("true")

else:
   print("false")

然而,在 Python 中 else 不僅可以和 if 搭配使用,另一種特有的句法是 for…else …,它還可以和 while、try…except 組合使用,例如:

for i in range(3):
   print(i)
else:
   print("end")

>>>
0
1
2
end

但是,你會發現 for…else… 與 if…else… 表現得不一樣,按照以往經驗來說,執行了 for 語句塊的代碼就不執行 else 里面了,反之亦然。

然而,我們看到的卻恰恰相反,for 循環結束之后接著又執行了 else 語句塊,這就有點意思了,if … else … 翻譯成大白話就是 如果…否則…,而 for…else… 翻譯成白話成了 直到… 然后 …,為什么不把它寫成  for…then… 的句式呢?

for 循環遍歷空列表也會執行 else 語句塊,因為它是正常退出 for 循環的一種特例情況。

for i in []:
    print(i)
else:
    print("end")

>>>
0

繼續探索,我們用 break 提前終止 for 循環

for i in range(3):
   print(i)
   if i % 2 == 0:
       break
else:
   print("end")

>>>
0

循環遇到 break 退出后,整個語句就結束,else 語句塊也不執行了。

綜上,我們可以得出這樣一個結論,只有當循環里沒有遇到 break 時,else 塊才會執行。

Python 之父為什么要搞出這樣的一種語法糖出來呢?這是我們常人沒法理解的。不過「python之禪」告訴了我們答案:  “Although that way may not be obvious at first unless you’re Dutch.”

帶著這個問題,我也在 StackOver Flow 找了一下答案,在平時的開發中真的很少有 for…else… 的應用場景,不過,像下面這種場景用 for else 還真是一種 pythonic 的用法。

當你用 for 循環迭代查找列表的中的某個元素時,如果找到了就提前退出,如果迭代完了還沒找到需要以另外一種形式通知調用者時,用 for else 無疑是最好的選擇。

for i in mylist:
   if i == target:
       break
   process(i)
else:
   raise ValueError("List argument missing terminal flag.")

如果不用 for…else… , 那么還需要專門建立一個臨時標記變量來標記是否已經找到了

found = False
for i in mylist:
   if i == target:
       found = True
       break
   process(i)

if not found:
   raise ValueError("List argument missing terminal flag.")

當你想在房間里找某樣東西時,只要在任意位置找到了,就停止繼續搜查工作。但如果把整個房間都翻遍了,還沒找到我們想要的東西,需要告訴人家說:這兒沒有你要找的東西。遇到這樣的情況用 for … else ,除此之外,最好不要用它

到此,關于“Python中怎么使用for else語句”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马鞍山市| 泰和县| 东乡| 泸州市| 吉首市| 泰宁县| 化隆| 延长县| 通城县| 罗平县| 讷河市| 临武县| 嘉义市| 昌黎县| 克东县| 张家口市| 攀枝花市| 景泰县| 新营市| 卢龙县| 贡嘎县| 屯昌县| 揭西县| 柘城县| 芮城县| 定结县| 朝阳县| 墨竹工卡县| 台山市| 集安市| 平南县| 阳高县| 绥阳县| 和静县| 淳安县| 广汉市| 同仁县| 哈尔滨市| 平远县| 西城区| 榆社县|