Python條件判斷語句 if


程序在一般情況下是按順序執行的,就像流水賬一樣,一條一條從上往下順序執行。

有時候我們需要根據條件來有選擇地執行某些語句,這就要使用到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。


 

 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM