一、if語句判斷的定義
-
如果 條件滿足,才能做某件事情,
-
如果 條件不滿足,就做另外一件事情,或者什麼也不做
正是因爲有了判斷,才使得程序世界豐富多彩,充滿變化!
判斷語句 又被稱爲 “分支語句”,正是因爲有了判斷,才讓程序有了很多的分支
Python程序語言指定任何非0和非空(null)值爲true,0 或者 null爲false。
Python 編程中 if 語句用於控制程序的執行,基本形式爲:
if 判斷條件:
執行語句……
else:
執行語句……
例子:如果天氣晴朗,我們去室外散步;否則,繼續宅在家裏
我們要判斷出語句中的關鍵字然後基於此編寫腳本
"""
如果 天氣晴朗
去室外散步
否則
繼續宅在家裏
"""
state = '陰天'
if state == '晴朗':
print('室外散步!')
else:
print('繼續宅在家裏。')
二、if語句的比較運算符
以下假設變量a爲10,變量b爲20:
運算符 | 描述 | 實例 |
---|---|---|
== | 等於 - 比較對象是否相等 | (a == b) 返回 False。 |
!= | 不等於 - 比較兩個對象是否不相等 | (a != b) 返回 true. |
<> | 不等於 - 比較兩個對象是否不相等。python3 已廢棄。 | (a <> b) 返回 true。這個運算符類似 != 。 |
> | 大於 - 返回x是否大於y | (a > b) 返回 False。 |
< | 小於 - 返回x是否小於y。所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。 | (a < b) 返回 true。 |
>= | 大於等於 - 返回x是否大於等於y。 | (a >= b) 返回 False。 |
<= | 小於等於 - 返回x是否小於等於y。 | (a <= b) 返回 true。 |
例子
1、算數運算符在條件表達式中的應用:ATM/客服
key = 1
if key == 1:
print('存款')
else:
print('取款')
#當數值等於1時存款,否則取款
2、!=的使用
if key != 1:
print('不存款')
else:
print('存款')
#當數值不等於1時不存款,否則取款
3、>=的使用
age = 18
if age >= 18:
print('允許進入網吧')
else:
print('未成年人禁止進入!')
#當年齡大於18可以進網吧,否則不行
三、if語句的邏輯運算符
Python語言支持邏輯運算符,以下假設變量 a 爲 10, b爲 20:
運算符 | 邏輯表達式 | 描述 | 實例 |
---|---|---|---|
and | x and y | 布爾"與" - 如果 x 爲 False,x and y 返回 False,否則它返回 y 的計算值。 | (a and b) 返回 20。 |
or | x or y | 布爾"或" - 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。 | (a or b) 返回 10。 |
not | not x | 布爾"非" - 如果 x 爲 True,返回 False 。如果 x 爲 False,它返回 True。 | not(a and b) 返回 False |
注意:if 有多個條件時可使用括號來區分判斷的先後順序,括號中的判斷優先執行,此外 and 和 or 的優先級低於 >(大於)、<(小於)等判斷符號,即大於和小於在沒有括號的情況下會比與或要優先判斷。
例子
當年齡大於等於18歲,或有100塊錢並且有身份證就可進入,否則不得進入
# 邏輯運算符:and/or
age = 16
money = 100
id_card = True
if (age >= 18 or money >= 100) and id_card:
print('歡迎光臨!')
else:
print('抱歉')
四、if語句的成員運算符
除了以上的一些運算符之外,Python還支持成員運算符,測試實例中包含了一系列的成員,包括字符串,列表或元組。
運算符 | 描述 | 實例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否則返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中沒有找到值返回 True,否則返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
例子
1、成員運算符:in/not in
當names列表中包含小寫的Kety,就輸出存在,否則不存在
names = ['Job','Bili','Laoyew','kety']
name = 'Kety'
if name.lower() in names:
print('存在')
else:
print('不存在')
當names列表中不包含大寫的Kety,就輸出不存在,否則存在
if name.upper() not in names:
print('不存在')
else:
print('存在')
五、小練習
1、檢查是否相等
num = 1
if num == 1:
print('ok')
else:
print('no')
2、檢查是否不相等
num1 = 2
if num1 != 1:
print('no')
else:
print('yes')
3、比較數字
num2 = 3
num3 = 4
if num2 <= num3:
print('ok')
else:
print('no')
4、檢查多個條件
num4 = 5
num5 = 6
num6 = 7
if (num4 >= 5 or num5 >= 6) and num6 ==7:
print ('ok')
else:
print('no')
5、檢查特定的值是否包含在列表中
num7 = ['a','b','c']
num8 = ['D']
if num8 in num7:
print('yes')
else:
print('no')
if str(num8).lower() in num7:
print('yes')
else:
print('no')
6、檢查特定的值是否不包含在列表中
if str(num8).upper() not in num7:
print('no')
else:
print('yes')
六、if語句結構
1、簡單的if語句
# 簡單的if
age = 0
if age ==0:
print('嬰兒')
print()
注意:Python 區分語句塊採用的是縮進規則。具有相同縮進的代碼被視是同一結構的代碼塊,上面的2,3行 print 語句就構成一個代碼塊( 但不包括第6行的 print 語句),他們都屬於 if 下的語句塊。
如果 age大於等於18,就會執行第 2 和 3 行的 if 語句塊。
縮進要嚴格按照 Python 的習慣寫法:4個空格,或者使用 Tab,不要混合 Tab 和空格
,否則很容易造成因爲縮進而引起的語法錯誤。
(一)if...else... 語句
if...else... 語句,當 if 的條件爲 True 時執行 if 下的語句塊,否則執行 else 下語句塊。
if...else... 語句格式如下:
if <條件>:
【if 的語句塊】
else:
【else 的語句塊】
釋:條件爲 True 時執行【if的語句塊】,否則執行【else的語句塊】
注意:if 和 else 語句以及各自的縮進部分共同是一個 完整的代碼塊
例子
# if-else
age = 3
if age >= 2 and age <= 4:
print('蹣跚學步')
else:
print('嬰兒')
(二)if...elif...else... 語句
- 在開發中,使用 if 可以
判斷條件
,使用 else 可以處理條件不成立
的情況 - 如果希望
再增加一些條件,條件不同,需要執行的代碼也不同
時,就可以使用 elif - 語法格式如下:
if 條件1:
條件1滿足執行的代碼
……
elif 條件2:
條件2滿足時,執行的代碼
……
elif 條件3:
條件3滿足時,執行的代碼
……
else:
以上條件都不滿足時,執行的代碼
……
注意:elif 和 else 都必須和 if 聯合使用,而不能單獨使用
可以將 if、 elif 和 else 以及各自縮進的代碼,看成一個 完整的代碼塊
例子:
# if-elif-else
age = 3
if age ==0:
print('嬰兒')
elif age >= 2 and age <= 4:
print('蹣跚學步')
elif age > 4 and age <=5:
print('上幼兒園')
else:
print('其他')
(三)if 的嵌套
**elif
的應用場景是:同時
判斷 多個條件
,所有的條件是 平級
的**
- 在開發中,使用 if 進行條件判斷,如果希望
在條件成立的執行語句中
再增加條件判斷
,就可以使用if 的嵌套
if 的嵌套
的應用場景就是:在之前條件滿足的前提下
,再增加額外的判斷if 的嵌套
的語法格式,除了縮進
之外 和之前的沒有區別
語法格式如下:
if 條件 1:
條件 1 滿足執行的代碼
……
if 條件 1 基礎上的條件 2:
條件 2 滿足時,執行的代碼
……
# 條件 2 不滿足的處理
else:
條件 2 不滿足時,執行的代碼
# 條件 1 不滿足的處理
else:
條件1 不滿足時,執行的代碼
……
例子
1、當百米賽跑時間小於等於10秒時,男女分組進入決賽
second = 6
gender = '男'
if second <= 10:
print('進入決賽')
if gender == '男':
print('進入男子組')
elif gender == '女':
print('進入女子組')
else:
print('重在參與,杭氧體育精神')
2、if 的嵌套 演練 —— 火車站安檢
需求
- 定義布爾型變量 has_ticket 表示是否有車票
- 定義整型變量 knife_length 表示刀的長度,單位:釐米
- 首先檢查是否有車票,如果有,才允許進行 安檢
- 安檢時,需要檢查刀的長度,判斷是否超過 20 釐米
如果超過 20 釐米,提示刀的長度,不允許上車
如果不超過 20 釐米,安檢通過 - 如果沒有車票,不允許進門
# 定義布爾型變量 has_ticket 表示是否有車票
has_ticket = True
# 定義整數型變量 knife_length 表示刀的長度,單位:釐米
knife_length = 20
# 首先檢查是否有車票,如果有,才允許進行 安檢
if has_ticket:
print("有車票,可以開始安檢...")
# 安檢時,需要檢查刀的長度,判斷是否超過 20 釐米
# 如果超過 20 釐米,提示刀的長度,不允許上車
if knife_length >= 20:
print("不允許攜帶 %d 釐米長的刀上車" % knife_length)
# 如果不超過 20 釐米,安檢通過
else:
print("安檢通過,祝您旅途愉快……")
# 如果沒有車票,不允許進門
else:
print("大哥,您要先買票啊")
六、小練習(2)
1、 求100以內數字的偶數之和與奇數之和
j = list(range(1,101,2))
print(sum(j))
print(sum(range(2,101,2)))
2、輸出100以內7的倍數的數字
for i in range(1,101):
if i%7 == 0:
print(i,end=' ')
3、打印直角三角形,奇數用*號代替,偶數用#號代替
xgp = list(range(1,10,2))
wsd = list(range(2,10,2))
for i in range(1,10):
for j in range(i+1):
if j in xgp:
print("*",end='')
elif j in wsd:
print("#",end='')
print()
4、
查看fruits列表中是否有apper
# 定義列表
fruits = ['apper','banana','pear','orange']
fruit = 'apper'
if fruit in fruits:
print('存在')
if嵌套
for f in fruits:
if f == 'pear':
print('做梨罐頭')
elif f == 'orange':
print('做橘子罐頭')
elif f == 'apple':
print('做蘋果罐頭')
else:
print('做沙拉')
#fruits = []
fruits = ['apple','banana','pear','orange']
print(fruits)
if len(fruits) == 0:
print('沒有水果')
else:
print('開始做水果罐頭了')
for fruit in fruits:
print(fruit,end=" ")