程式在一般情況下是按順序執行的,就像流水賬一樣,一條一條從上往下順序執行,
有時候我們需要根據條件來有選擇地執行某些陳述句,這就要使用到Python的條件判斷陳述句——if,
我們可以通過下圖來簡單了解條件陳述句的執行程序,

一、if 陳述句基本形式

語法格式:
1 if 要判斷的條件運算式: 2 條件成立時,要做的事情 3 ……
“運算式”可以是一個單一的值或者變數,也可以是由運算子組成的復雜陳述句,形式不限,只要它能得到一個值就行,
如果 if 條件成立,則執行后面的陳述句,執行的陳述句可以有多行,用縮進表示屬于同一范圍,
注意:代碼的縮進為一個 tab 鍵,或者4個空格,建議使用空格,
在 Python 開發中,Tab 和空格不要混用!
實體:
1 # 1. 定義年齡變數 2 age = 18 3 4 # 2. 判斷是否滿 18 歲 5 # if 陳述句以及縮進部分的代碼是一個完整的代碼塊 6 if age >= 18: 7 print("可以進網吧嗨皮……") 8 print("這句代碼什么時候執行?")
Python程式語言指定任何非0和非空(null)值為 true,0 或者 null 為 false,
二、操作運算子
if 陳述句的判斷條件可以使用 >(大于)、=(大于等于)、<=(小于等于)等等符號來表示其關系,
下表列出了 if 中常用的操作運算子,
| 運算子 | 描述 |
| < | 小于 |
| <= | 小于或等于 |
| > | 大于 |
| >= | 大于或等于 |
| == | 等于,比較物件是否相等 |
| != | 不等于 |
三、else 結構陳述句
在使用 if 判斷時,只能做到滿足條件時要做的事情,那如果需要在不滿足條件的時候,做某些事情,該如何做呢?答案就是使用 else 結構陳述句,
流程圖如下:

語法格式:
1 if 要判斷的條件: 2 條件成立時,要做的事情 3 …… 4 else: 5 條件不成立時,要做的事情 6 ……
實體:
1 # 1. 輸入用戶年齡 2 age = int(input("今年多大了?")) 3 4 # 2. 判斷是否滿 18 歲 5 # if 陳述句以及縮進部分的代碼是一個完整的語法塊 6 if age >= 18: 7 print("可以進網吧嗨皮……") 8 else: 9 print("你還沒長大,應該回家寫作業!")
四、邏輯運算子
在程式開發中,通常在判斷條件時,會需要同時判斷多個條件,
只有多個條件都滿足,才能夠執行后續代碼,這個時候需要使用到邏輯運算子,
邏輯運算子可以把多個條件按照邏輯進行連接,變成更復雜的條件,
Python 中的邏輯運算子包括:與 and/或 or/非 not 三種,
1. and(與/并且)
條件1 and 條件2
兩個條件同時滿足,回傳 True,只要有一個不滿足,就回傳 False,
| 條件1 | 條件2 | 結果 |
| 成立 | 成立 | 成立 |
| 成立 | 不成立 | 不成立 |
| 不成立 | 成立 | 不成立 |
| 不成立 | 不成立 | 不成立 |
實體:
1 age = 100 2 # 要求人的年齡在 0-120 之間 3 if age >= 0 and age <= 120: 4 print("年齡正確") 5 else: 6 print("年齡不正確")
2. or(或/或者)
條件1 or 條件2
兩個條件只要有一個滿足,回傳 True,兩個條件都不滿足,回傳 False,
| 條件1 | 條件2 | 結果 |
| 成立 | 成立 | 成立 |
| 成立 | 不成立 | 成立 |
| 不成立 | 成立 | 成立 |
| 不成立 | 不成立 | 不成立 |
實體:
1 python_score = 50 2 c_score = 50 3 4 # 要求只要有一門成績 > 60 分就算合格 5 if python_score > 60 or c_score > 60: 6 print("考試通過") 7 else: 8 print("再接再厲!")
3. not(非/不是)
not 條件
| 條件 | 結果 |
| 成立 | 不成立 |
| 不成立 | 成立 |
實體:
1 is_employee = True 2 3 # 如果不是提示不允許入內 4 if not is_employee: 5 print("非公勿入")
五、elif 結構陳述句
在開發中,使用 if 可以判斷條件,使用 else 可以處理條件不成立的情況,
但是,如果希望再增加一些條件,條件不同,需要執行的代碼也不同時,就可以使用 elif,
由于 python 并不支持 switch 陳述句,所以多個條件判斷,只能用 elif 來實作,
語法格式:
1 if 條件1: 2 條件1滿足執行的代碼 3 …… 4 elif 條件2: 5 條件2滿足時,執行的代碼 6 …… 7 elif 條件3: 8 條件3滿足時,執行的代碼 9 …… 10 else: 11 以上條件都不滿足時,執行的代碼 12 ……
實體:
1 holiday_name = "平安夜" 2 3 if holiday_name == "情人節": 4 print("買玫瑰") 5 print("看電影") 6 elif holiday_name == "平安夜": 7 print("買蘋果") 8 print("吃大餐") 9 elif holiday_name == "生日": 10 print("買蛋糕") 11 else: 12 print("每天都是節日啊……")
不管有多少個分支,都只能執行一個分支,或者一個也不執行,不能同時執行多個分支,
六、if 陳述句的嵌套
elif 的應用場景是:同時判斷多個條件,所有的條件是平級的,
在開發中,使用 if 進行條件判斷,如果希望在條件成立的執行陳述句中再增加條件判斷,就可以使用 if 的嵌套,
if 的嵌套的應用場景就是:在之前條件滿足的前提下,再增加額外的判斷,
if 的嵌套的語法格式,除了縮進之外和之前的沒有區別,
語法格式:
1 if 條件 1: 2 條件 1 滿足執行的代碼 3 …… 4 5 if 條件 1 基礎上的條件 2: 6 條件 2 滿足時,執行的代碼 7 …… 8 9 # 條件 2 不滿足的處理 10 else: 11 條件 2 不滿足時,執行的代碼 12 13 # 條件 1 不滿足的處理 14 else: 15 條件1 不滿足時,執行的代碼 16 ……
實體:
1 # 定義布爾型變數 has_ticket 表示是否有車票 2 has_ticket = True 3 4 # 定義整數型變數 knife_length 表示刀的長度,單位:厘米 5 knife_length = 20 6 7 # 首先檢查是否有車票,如果有,才允許進行 安檢 8 if has_ticket: 9 print("有車票,可以開始安檢...") 10 11 # 安檢時,需要檢查刀的長度,判斷是否超過 20 厘米 12 # 如果超過 20 厘米,提示刀的長度,不允許上車 13 if knife_length >= 20: 14 print("不允許攜帶 %d 厘米長的刀上車" % knife_length) 15 # 如果不超過 20 厘米,安檢通過 16 else: 17 print("安檢通過,祝您旅途愉快……") 18 19 # 如果沒有車票,不允許進門 20 else: 21 print("大哥,您要先買票啊")
七、if else 如何判斷運算式是否成立
上面說過,if 和 elif 后面的“運算式”的形式是很自由的,只要運算式有一個結果,不管這個結果是什么型別,Python 都能判斷它是“真”還是“假”,
布爾型別(bool)只有兩個值,分別是 True 和 False,Python 會把 True 當做“真”,把 False 當做“假”,
對于數字,Python 會把 0 和 0.0 當做“假”,把其它值當做“真”,
對于其它型別,當物件為慷訓者為 None 時,Python 會把它們當做“假”,其它情況當做真,
比如,下面的運算式都是不成立的:
"" #空字串
[ ] #空串列
( ) #空元組
{ } #空字典
None #空值
實體:
1 b = False 2 if b: 3 print('b是True') 4 else: 5 print('b是False') 6 n = 0 7 if n: 8 print('n不是零值') 9 else: 10 print('n是零值') 11 s = "" 12 if s: 13 print('s不是空字串') 14 else: 15 print('s是空字串') 16 l = [] 17 if l: 18 print('l不是空串列') 19 else: 20 print('l是空串列') 21 d = {} 22 if d: 23 print('d不是空字典') 24 else: 25 print('d是空字典') 26 def func(): 27 print("函式被呼叫") 28 if func(): 29 print('func()回傳值不是空') 30 else: 31 print('func()回傳值為空')
運行結果:
1 b是False 2 n是零值 3 s是空字串 4 l是空串列 5 d是空字典 6 函式被呼叫 7 func()回傳值為空
說明:對于沒有 return 陳述句的函式,回傳值為空,也即 None,


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/65141.html
標籤:Python
上一篇:讀取Json資料
下一篇:337打家劫舍III
