Python之奇妙的else

2021-03-02 python
之所以Python — 不僅僅能配合 if 的 else

這個特性不夠突出,但是早已經不是什麼秘密了。可能是因為很多程式語言都有else語法,但都不支持這一特性,才使得這個特性如此的不明顯吧,但它卻是Python很有特點的一個特性。

喜歡Python讀者君可以加我們Python學習交流 330637182群內有大量的實戰和新手資料視頻千人大群等你加入。

規則

else不僅能用在if語句中,而且可以用在for、while和try語句中。當然for/else,while/else和try/else從語義的層面很類似,雖然他們和if/else語意差很多,不過還是值得一看。

1、for/else

只有當for執行完畢的時候,else才會執行。

Python學習交流330637182 群內每天更新學習資料

這意味著不能被 break 打斷


Python學習交流330637182 群內每天更新學習資料

但是被 continue 跳過是沒問題的


Python學習交流330637182 群內每天更新學習資料

不過,顯然,用異常打斷是不可以的


Python學習交流330637182 群內每天更新學習資料

2、while/else

只有當while因為條件變成falsy,else才會執行


Python學習交流330637182 群內每天更新學習資料

同樣的,這也意味著不能被 break 打斷


Python學習交流330637182 群內每天更新學習資料

當然,continue 和 exception 的例子於 for是一樣的,這裡就不做過多的介紹了。

3、try/else

只有當在try中沒有發生異常時,else才會執行。


Python學習交流330637182 群內每天更新學習資料

如果try引發了異常,那麼else將無法執行


Python學習交流330637182 群內每天更新學習資料

注意:except並不負責處理else中的異常


Python學習交流330637182 群內每天更新學習資料

陷阱

這個規則還有一些小陷阱


Python學習交流330637182 群內每天更新學習資料

由於return強迫流程離開了整個主體快,因此不會出發else

價值

要說else在Python中最大的價值的地方就是使得try/except語法更加清晰可讀


         Python學習交流330637182 群內每天更新學習資料

Python學習交流330637182 群內每天更新學習資料

可以看到,這個代碼,更加能夠體現出except是服務dangerous_call() 而不是 after_call()的。



相關焦點

  • 魅力python——if-elif-else語句
    /usr/bin/python#!我們試一試用if-elif-else再寫一個小程序實現同樣的功能。#!/usr/bin/python#!if-else方法的代碼一共有16行,第二種if-elif-else的方法只有13行代碼。
  • Python中被忽略的else
    對於一個python程式設計師來說,else往往都是配合if來使用的,像這樣:a = '12'if a == '123':    print(a)else:    print('出錯了!')但是,python中的else並不只能用在if之後,so,這次我們討論一下Python流程控制中的else。
  • python分支結構if-else解決你的選擇困難症,學習python第3天
    而在python程序中,也存在選擇。python分支結構if-else就是python程序中的選擇,作用py程式設計師的我們應用如何來使用python分支結構呢?下面羽憶教程為你介紹。而python中一般用於解決這種多結果問題就需要使用到分支結構。其定義是根據給出的條件是否成立,從而決定其執行的步驟或者輸出的結果。一般python分支結構分為三種:單分支結構、雙分支結構和多分支結構,其使用到的關鍵詞有if、elif和else三個,下面為你介紹三種分支結構的使用。
  • python中使用else代替狀態變量
    我想到的方法是應用else。  說到else,最常用的語法是if-elif-else,實際上else是可以與循環和try搭配使用的,下面我寫了一個else替換狀態變量的例子,使用插入法對數組排序。首先使用狀態變量實現,代碼如下:
  • Python基礎知識儲備,關於if-else使用性能的一點感悟
    前面給大家介紹的if-if分支結構是只要條件滿足就會執行;而if-else的語句結構是前面的條件成立執行什麼操作,則下面的分支結構就不會被執行,若前面的條件不成立(否則)做什麼。以下通過三個案例給大家演示if-else語句的使用方法:
  • Python基礎知識儲備,if-elif-else語句綜合應用,新手使用教程 - IT...
    python開發Python 中條件選擇語句的第三種形式:if-elif-else,對於前面介紹的 if 分支語句,執行過程非常簡單,判斷 if 語句中的表達式是否為True真,如果為True程序就會執行 if 語句下面的代碼塊,if語句中的判斷結果為False假,就會依次判斷 elif 語句中的表達式,如果為True真,程序就會執行 elif 中的代碼塊……(if語句之後可以有任意數量的elif語句)如果前面所有條件都為False假,程序就會執行 else語句下面的代碼塊,else語句最多只可以有一個語句。
  • 如何學python-第六課 流程控制-IF,ELSE,條件語句
    If和ElseIf和else可以幫助我們控制程序的走向。這讓我們可以在不同的情況(條件)下執行不同的代碼。下面我們嘗試一下,看看能否在用戶輸入不同的內容時,獲取不同的輸出。首先,我們來獲取用戶輸入:注意,python的語法規則嚴重依賴於縮進(你姑且可以把縮進理解為程序前面的那些空白,但是縮進的概念遠非於此),所以,一定一定記得打上一個tab空格。因為我們輸入了google,所以被賦值為字符串」google」的變量UserInput 與「google「是相等的,我們的程序便執行了判斷為真時執行的語句。
  • Python小知識:else除了跟if很搭,你還知道其他的關鍵詞嗎?
    用Python這麼久了,只知道else與if很搭,其實跟else關係很好的關鍵詞還有while、for。
  • 條件測試語句(2)——if、else搭配使用
    我們經常需要在條件測試通過的時候執行一個操作,並在沒有通過時執行另外一個操作:在這種情況下,我們就可以使用python提供的if-else語句。if—else語句塊類似於簡單的if語句,但是其中的else語句讓我們能夠指定條件未通過時要執行的操作。
  • 09.為什麼Python循環語句裡也有else?
    循環裡的elsecount = 0for i in range(100,1001):for j in range(2,i):if i % j == 0:breakelse:count += 1print(i)print(count)循環語句裡的else是Python語言特有的,有趣的語法。
  • 5個奇妙的Python庫
    點擊上方「深度學習愛好者」,選擇加"星標"或「置頂」重磅乾貨,第一時間送達引言Python是一個非常神奇語言,無論我們要做什麼任務,python都有其解決方案,無論它與機器學習,數據可視化但是對於很多小的需求,python同樣有很多奇妙的庫。本文將分享一些在項目中遇到的一些庫,這些庫具有很高的可移植性,對於每個庫我都將用一個代碼段來介紹。你可能已經聽說過基礎架構即服務(Iaas),軟體即服務(Saas)和平臺即服務(Paas)。但是您聽說過「笑話即服務」嗎?
  • 【Python】else 用法匯總筆記
    一般 else 都是配合判斷語句用,那麼這裡的 else 是什麼作用呢?    else:        print("else branch")>>>test04:嘗試 return 語句,打斷循環,也是不走 else 分支。
  • 【Python 第23課】 if, elif, else
    為什麼我跳要著講,因為我的想法是先講下最最基本的概念,讓你能用起來,之後你熟悉了,再說些細節。關於if,可以發送數字『7』回顧之前的課程。它除了我們之前講的用法外,還可以配合elif和else使用,使程序的運行順序更靈活。之前說的if,是:「如果」條件滿足,就做xxx,否則就不做。else顧名思義,就是:「否則」就做yyy。
  • Python之函數學習(八)
    python語言,即可以進行函數式的編程的語言,又是可以進行面向對象編程的語言,所謂函數,簡單的理解就是將一些語句集合到一起,這樣可以在程序中多次的調用
  • python面向對象之異常處理
    捕獲異常 2.1 簡單的捕獲異常語法 在程序開發中,如果 對某些代碼的執行不能確定是否正確,可以增加 `try(嘗試)` 來 捕獲異常 捕獲異常最簡單的語法格式:```pythontry: 嘗試執行的代碼except: 出現錯誤的處理``` `try
  • Python if else條件語句詳解
    在 Python 中,可以使用 if else 語句對條件進行判斷,然後根據不同的結果執行不同的代碼,這稱為選擇結構或者分支結構。Python 中的 if else 語句可以細分為三種形式,分別是 if 語句、if else 語句和 if elif else 語句,它們的語法和執行流程如表1所示。
  • java基礎案例之java語言流程控制if,if else, if elseif else
    >執行語句;}else if(條件表達式){執行語句;}else{if elseif else結構語法class ifElse{public static void>System.out.println(x+"春季");else if(x>=6 && x<=8)System.out.println(x+"夏季");else if(x>=9 && x<=11)
  • 逆向工程 | C 語言之 if-else 分支
    在學習逆向的時候,始終要記住我們是在與編譯器打交道,大致將if-else分支的逆向分為4種狀態。一、以常量為判斷條件的簡單if-else分支我們先來看一個例子,如代碼清單1所示。這正是Release版的強大之處,更確切地說應該是編譯優化的強大之處。由於編譯器在編譯前進行掃描時檢測到了if語句後面的判斷條件是一個常量,編譯器在編譯時就剪掉了那個永遠不可達的分支,並且去掉了判斷,因此這個if-else分支的執行結果肯定是不會發生變化的。看到這裡也許有的朋友會感到迷惑,我們如何才能將原來的代碼還原出來呢?答案是:還原不出來。
  • 十、python基礎之異常處理結構與程序調試方法
    實驗目的:學習python的異常處理和程序調試實驗環境:已正確安裝python3.51、異常的基本概念異常是指程序運行時引發的錯誤,得不到正確的處理將會導致程序終止運行例如:最常見的除數為0,python會拋出「ZeroDivisionError"異常。2、異常處理結構(1)基本結構1:try...except結構try子句中的代碼塊放置可能出現異常的語句,except子句中的代碼塊處理異常。
  • Python基礎教程判斷(if)語句
    ……程序中的判斷```python if 今天發工資: 先還信用卡的錢 if 有剩餘: 又可以happy了,O(∩_∩)O哈哈~ else答案else,格式如下:python if 要判斷的條件: 條件成立時,要做的事情