判斷(if)語句
目標
開發中的應用場景if 語句體驗if 語句進階綜合應用
01. 開發中的應用場景
生活中的判斷幾乎是無所不在的,我們每天都在做各種各樣的選擇,如果這樣?如果那樣?……
程序中的判斷
```python if 今天發工資:
先還信用卡的錢
if 有剩餘:
又可以happy了,O(∩_∩)O哈哈~
else:
噢,no。。。還的等30天
else:
盼著發工資
```
判斷的定義
如果 條件滿足,才能做某件事情,如果 條件不滿足,就做另外一件事情,或者什麼也不做
正是因為有了判斷,才使得程序世界豐富多彩,充滿變化!判斷語句 又被稱為 「分支語句」,正是因為有了判斷,才讓程序有了很多的分支
02. if 語句體驗
2.1 if 判斷語句基本語法
在
Python
中,if 語句 就是用來進行判斷的,格式如下:
python if 要判斷的條件: 條件成立時,要做的事情 ……
注意:代碼的縮進為一個tab鍵,或者 4 個空格 —— 建議使用空格在 Python 開發中,Tab 和空格不要混用!
我們可以把整個 if 語句看成一個完整的代碼塊
2.2 判斷語句演練 —— 判斷年齡
需求
定義一個整數變量記錄年齡判斷是否滿 18 歲 (>=)如果滿 18 歲,允許進網吧嗨皮
```python
1. 定義年齡變量
age = 18
2. 判斷是否滿 18 歲
if 語句以及縮進部分的代碼是一個完整的代碼塊
if age >= 18: print("可以進網吧嗨皮……")
3. 思考!- 無論條件是否滿足都會執行
print("這句代碼什麼時候執行?") ```
注意:
if語句以及縮進部分是一個 完整的代碼塊
2.3 else 處理條件不滿足的情況
思考
在使用
if
判斷時,只能做到滿足條件時要做的事情。那如果需要在 不滿足條件的時候,做某些事情,該如何做呢?
答案
else
,格式如下:
python if 要判斷的條件: 條件成立時,要做的事情 …… else: 條件不成立時,要做的事情 ……
注意:
if和else語句以及各自的縮進部分共同是一個 完整的代碼塊
2.4 判斷語句演練 —— 判斷年齡改進
需求
輸入用戶年齡判斷是否滿 18 歲 (>=)如果滿 18 歲,允許進網吧嗨皮如果未滿 18 歲,提示回家寫作業
```python
1. 輸入用戶年齡
age = int(input("今年多大了?"))
2. 判斷是否滿 18 歲
if 語句以及縮進部分的代碼是一個完整的語法塊
if age >= 18: print("可以進網吧嗨皮……") else: print("你還沒長大,應該回家寫作業!")
3. 思考!- 無論條件是否滿足都會執行
print("這句代碼什麼時候執行?") ```
03. 邏輯運算
在程序開發中,通常 在判斷條件時,會需要同時判斷多個條件只有多個條件都滿足,才能夠執行後續代碼,這個時候需要使用到 邏輯運算符邏輯運算符 可以把 多個條件 按照 邏輯 進行 連接,變成 更複雜的條件Python 中的 邏輯運算符 包括:與 and/或 or/非 not 三種
3.1and
條件1 and 條件2
與/並且兩個條件同時滿足,返回True只要有一個不滿足,就返回False
| 條件 1 | 條件 2 | 結果 | | :---: | :---: | :---: | | 成立 | 成立 | 成立 | | 成立 | 不成立 | 不成立 | | 不成立 | 成立 | 不成立 | | 不成立 | 不成立 | 不成立 |
3.2or
條件1 or 條件2
或/或者兩個條件只要有一個滿足,返回True兩個條件都不滿足,返回False
| 條件 1 | 條件 2 | 結果 | | :---: | :---: | :---: | | 成立 | 成立 | 成立 | | 成立 | 不成立 | 成立 | | 不成立 | 成立 | 成立 | | 不成立 | 不成立 | 不成立 |
3.3not
not 條件
非/不是
| 條件 | 結果 | | :---: | :---: | | 成立 | 不成立 | | 不成立 | 成立 |
邏輯運算演練
練習1: 定義一個整數變量age,編寫代碼判斷年齡是否正確要求人的年齡在 0-120 之間練習2: 定義兩個整數變量python_score、c_score,編寫代碼判斷成績要求只要有一門成績 > 60 分就算合格練習3: 定義一個布爾型變量is_employee,編寫代碼判斷是否是本公司員工如果不是提示不允許入內
答案 1:
```python
練習1: 定義一個整數變量 age,編寫代碼判斷年齡是否正確
age = 100
要求人的年齡在 0-120 之間
if age >= 0 and age <= 120: print("年齡正確") else: print("年齡不正確")
```
答案 2:
```python
練習2: 定義兩個整數變量 pythonscore、cscore,編寫代碼判斷成績
pythonscore = 50 cscore = 50
要求只要有一門成績 > 60 分就算合格
if pythonscore > 60 or cscore > 60: print("考試通過") else: print("再接再厲!") ```
答案 3:
```python
練習3: 定義一個布爾型變量is_employee,編寫代碼判斷是否是本公司員工
is_employee = True
如果不是提示不允許入內
if not is_employee: print("非公勿內") ```
04. if 語句進階
4.1elif
在開發中,使用if可以 判斷條件使用else可以處理 條件不成立 的情況但是,如果希望 再增加一些條件,條件不同,需要執行的代碼也不同 時,就可以使用elif語法格式如下:
python if 條件1: 條件1滿足執行的代碼 …… elif 條件2: 條件2滿足時,執行的代碼 …… elif 條件3: 條件3滿足時,執行的代碼 …… else: 以上條件都不滿足時,執行的代碼 ……
對比邏輯運算符的代碼
python if 條件1 and 條件2: 條件1滿足 並且 條件2滿足 執行的代碼 ……
注意
elif和else都必須和if聯合使用,而不能單獨使用可以將if、elif和else以及各自縮進的代碼,看成一個 完整的代碼塊
elif 演練 —— 女友的節日
需求
定義holiday_name字符串變量記錄節日名稱如果是 情人節 應該 買玫瑰/看電影如果是 平安夜 應該 買蘋果/吃大餐如果是 生日 應該 買蛋糕其他的日子每天都是節日啊……
``` holiday_name = "平安夜"
if holidayname == "情人節": print("買玫瑰") print("看電影") elif holidayname == "平安夜": print("買蘋果") print("吃大餐") elif holiday_name == "生日": print("買蛋糕") else: print("每天都是節日啊……")
```
4.2if的嵌套
elif 的應用場景是:同時 判斷 多個條件,所有的條件是 平級 的
在開發中,使用if進行條件判斷,如果希望 在條件成立的執行語句中 再 增加條件判斷,就可以使用 if 的嵌套if 的嵌套 的應用場景就是:在之前條件滿足的前提下,再增加額外的判斷if 的嵌套 的語法格式,除了縮進之外 和之前的沒有區別語法格式如下:
```python if 條件 1: 條件 1 滿足執行的代碼 ……
if 條件 1 基礎上的條件 2: 條件 2 滿足時,執行的代碼 …… # 條件 2 不滿足的處理 else: 條件 2 不滿足時,執行的代碼
條件 1 不滿足的處理
else: 條件1 不滿足時,執行的代碼 …… ```
if 的嵌套 演練 —— 火車站安檢
需求
定義布爾型變量has_ticket表示是否有車票定義整型變量knife_length表示刀的長度,單位:釐米首先檢查是否有車票,如果有,才允許進行 安檢安檢時,需要檢查刀的長度,判斷是否超過 20 釐米如果超過 20 釐米,提示刀的長度,不允許上車如果不超過 20 釐米,安檢通過如果沒有車票,不允許進門
```python
定義布爾型變量 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("大哥,您要先買票啊")
```
05. 綜合應用 —— 石頭剪刀布
目標
強化 多個條件 的 邏輯運算體會import導入模塊(「工具包」)的使用
需求
從控制臺輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3)電腦 隨機 出拳 —— 先假定電腦只會出石頭,完成整體代碼功能比較勝負
| 序號 | 規則 | | :---: | :---: | | 1 | 石頭 勝 剪刀 | | 2 | 剪刀 勝 布 | | 3 | 布 勝 石頭 |
5.1 基礎代碼實現
先 假定電腦就只會出石頭,完成整體代碼功能
```python
從控制臺輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3)
player = int(input("請出拳 石頭(1)/剪刀(2)/布(3):"))
電腦 隨機 出拳 - 假定電腦永遠出石頭
computer = 1
比較勝負
如果條件判斷的內容太長,可以在最外側的條件增加一對大括號
再在每一個條件之間,使用回車,PyCharm 可以自動增加 8 個空格
if ((player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1)):
print("噢耶!!!電腦弱爆了!!!")
elif player == computer: print("心有靈犀,再來一盤!") else: print("不行,我要和你決戰到天亮!")
```
5.2 隨機數的處理
在Python中,要使用隨機數,首先需要導入 隨機數 的 模塊 —— 「工具包」
python import random
導入模塊後,可以直接在 模塊名稱 後面敲一個然後按Tab鍵,會提示該模塊中包含的所有函數random.randint(a, b),返回[a, b]之間的整數,包含a和b例如:
python random.randint(12, 20) # 生成的隨機數n: 12 <= n <= 20 random.randint(20, 20) # 結果永遠是 20 random.randint(20, 10) # 該語句是錯誤的,下限必須小於上限