Python條件控制是通過條件陳述句的執行結果(True or False)來決定條件陳述句后的代碼塊是否執行
以最簡單的if陳述句為例,代碼執行流程如下:

以下是一個簡單的if實體:
boy_age = 16
if boy_age == 18:
print('He is %d years old' % boy_age)
if boy_age == 16:
print('He is %d' % boy_age)
結果如下:

第一個if條件判斷為False,所以第一個if判斷后的print陳述句沒有執行;第二個if條件判斷為True,所以執行了之后的print陳述句
像上面這種寫多個if陳述句的代碼不清晰也不簡潔,可以使用if-else、if-elif、if-elif-else等陳述句來執行多次條件判斷
if-else條件判斷
if-else條件判斷適用于分類明確,且只有兩種情況的條件判斷,如性別判斷等,
如果if條件為True,則執行if條件后的代碼塊,不執行else后的代碼塊;反之則只執行else后的代碼塊,示例如下:
gender = 'boy'
if gender == 'boy':
print('張無忌 is a handsome %s' % gender)
else:
print('張無忌 is a beautiful %s' % gender)
結果如下:

if-elif-else條件判斷
if-elif-else條件判斷適用于分類明確,有三種及以上情況的條件判斷,如大小關系等,執行情況如下:
-
如果if條件為True,則執行if條件后的代碼塊,不執行之后的elif/else判斷及其代碼塊
-
如果if條件為False,則不執行if條件后的代碼塊,繼續執行之后的elif判斷
-
如果elif條件為True,則執行elif條件后的代碼塊,不執行之后的elif/else判斷及其代碼塊
-
最后如果所有的if/elif條件都為False,則執行else之后的代碼塊
示例如下:
x = 5
y = 10
if x > y:
print('x > y') # 判斷條件為False,不執行對應的代碼塊
elif x < y:
print('x < y') # 判斷條件為True,執行對應的代碼塊
else:
print('x = y') # 前面有if/elif條件為True,所以不執行else之后的代碼塊
結果如下:

多個條件判斷時,將出現概率高的條件寫在前面可以減少判斷次數,提高程式運行速度
if-elif條件判斷
if-elif條件判斷與if-elif-else執行流程基本一樣,只是省略了最后的else陳述句
適用于多種情況,只想判斷其中部分情況的需求,示例如下:
age = 28
if 0 < age <= 20:
print('age is between 0-20')
elif 20 < age <= 40:
print('age is between 20-40')
elif 40 < age <= 60:
print('age is between 40-60')
結果如下:

如果將age = 28 改為age = 70,則不會執行任何列印陳述句,因為if/elif的條件判斷都為False
最后:if-else、if-elif-else中的else是一條兜底陳述句,所有不符合條件的測驗都會執行else之后的代碼塊,這可能會引入無效的甚至惡意的資料,如果明確最后的判斷條件,應該將所有的else陳述句都改寫為elif陳述句,以此來提高代碼的可讀性和安全性
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/281956.html
標籤:其他
