wordpress加速r網(wǎng)站搜索優(yōu)化公司
判斷(if)語句
目標(biāo)
- 開發(fā)中的應(yīng)用場景
- if 語句體驗(yàn)
- if 語句進(jìn)階
- 綜合應(yīng)用
01. 開發(fā)中的應(yīng)用場景
生活中的判斷幾乎是無所不在的,我們每天都在做各種各樣的選擇,如果這樣?如果那樣?……
程序中的判斷
# 定義holiday_name字符串變量記錄節(jié)日名稱
# 如果是情人節(jié)應(yīng)該買玫瑰╱看電影
# 如果是平安夜應(yīng)該買蘋果吃大餐
# 如果是生日應(yīng)該買蛋糕
# 其他的日子每天都是節(jié)日啊.......holiday_name = "端午"
if holiday_name == "情人節(jié)":print("應(yīng)該買玫瑰╱看電影")
elif holiday_name == "平安夜":print("應(yīng)該買蘋果吃大餐")
elif holiday_name == "生日":print("應(yīng)該買蛋糕")
else:print("每天都是節(jié)日啊")
判斷的定義
- 如果 條件滿足,才能做某件事情,
- 如果 條件不滿足,就做另外一件事情,或者什么也不做
正是因?yàn)橛辛伺袛?#xff0c;才使得程序世界豐富多彩,充滿變化!
判斷語句 又被稱為 “分支語句”,正是因?yàn)橛辛伺袛?#xff0c;才讓程序有了很多的分支
02. if 語句體驗(yàn)
2.1 if 判斷語句基本語法
在 Python
中,if 語句 就是用來進(jìn)行判斷的,格式如下:
if 要判斷的條件:條件成立時(shí),要做的事情……
注意:代碼的縮進(jìn)為一個(gè)
tab
鍵,或者 4 個(gè)空格 —— 建議使用空格
- 在 Python 開發(fā)中,Tab 和空格不要混用!
2.2 判斷語句演練 —— 判斷年齡
需求
- 定義一個(gè)整數(shù)變量記錄年齡
- 判斷是否滿 18 歲 (>=)
- 如果滿 18 歲,允許進(jìn)網(wǎng)吧嗨皮
# 1. 定義年齡變量
age = 18# 2. 判斷是否滿 18 歲
# if 語句以及縮進(jìn)部分的代碼是一個(gè)完整的代碼塊
if age >= 18:print("可以進(jìn)網(wǎng)吧嗨皮……")# 3. 思考!- 無論條件是否滿足都會執(zhí)行
print("這句代碼什么時(shí)候執(zhí)行?")
注意:
if
語句以及縮進(jìn)部分是一個(gè) 完整的代碼塊
2.3 else 處理?xiàng)l件不滿足的情況
思考
在使用 if
判斷時(shí),只能做到滿足條件時(shí)要做的事情。那如果需要在 不滿足條件的時(shí)候,做某些事情,該如何做呢?
答案
else
,格式如下:
if 要判斷的條件:條件成立時(shí),要做的事情……
else:條件不成立時(shí),要做的事情……
注意:
if
和else
語句以及各自的縮進(jìn)部分共同是一個(gè) 完整的代碼塊
2.4 判斷語句演練 —— 判斷年齡改進(jìn)
需求
- 輸入用戶年齡
- 判斷是否滿 18 歲 (>=)
- 如果滿 18 歲,允許進(jìn)網(wǎng)吧嗨皮
- 如果未滿 18 歲,提示回家寫作業(yè)
# 輸入用戶年齡
# 判斷是否滿18歲,如果滿18歲,就可以進(jìn)去網(wǎng)吧玩耍,
# 未滿18歲,提示回家找你媽
age = int(input("請輸入年齡:"))
if age >= 18:print("可以進(jìn)來網(wǎng)吧玩耍")
else:print("回家吃飯去吧!")# 因?yàn)樵趐ython中,這句代碼頂?shù)阶钋懊鎸懥?#xff0c;所以,上面的代碼不管成立不成立,這句代碼都會執(zhí)行
print("這個(gè)代碼啥時(shí)候運(yùn)行呢?")
03. 邏輯運(yùn)算
- 在程序開發(fā)中,通常 在判斷條件時(shí),會需要同時(shí)判斷多個(gè)條件
- 只有多個(gè)條件都滿足,才能夠執(zhí)行后續(xù)代碼,這個(gè)時(shí)候需要使用到 邏輯運(yùn)算符
- 邏輯運(yùn)算符 可以把 多個(gè)條件 按照 邏輯 進(jìn)行 連接,變成 更復(fù)雜的條件
- Python 中的 邏輯運(yùn)算符 包括:與 and/或 or/非 not 三種
3.1 and
條件1 and 條件2
- 與/并且
- 兩個(gè)條件同時(shí)滿足,返回
True
- 只要有一個(gè)不滿足,就返回
False
條件 1 | 條件 2 | 結(jié)果 |
---|---|---|
成立 | 成立 | 成立 |
成立 | 不成立 | 不成立 |
不成立 | 成立 | 不成立 |
不成立 | 不成立 | 不成立 |
3.2 or
條件1 or 條件2
- 或/或者
- 兩個(gè)條件只要有一個(gè)滿足,返回
True
- 兩個(gè)條件都不滿足,返回
False
條件 1 | 條件 2 | 結(jié)果 |
---|---|---|
成立 | 成立 | 成立 |
成立 | 不成立 | 成立 |
不成立 | 成立 | 成立 |
不成立 | 不成立 | 不成立 |
3.3 not
not 條件
- 非/不是
條件 | 結(jié)果 |
---|---|
成立 | 不成立 |
不成立 | 成立 |
邏輯運(yùn)算演練
- 練習(xí)1: 定義一個(gè)整數(shù)變量
age
,編寫代碼判斷年齡是否正確- 要求人的年齡在 0-120 之間
- 練習(xí)2: 定義兩個(gè)整數(shù)變量
python_score
、c_score
,編寫代碼判斷成績- 要求只要有一門成績 > 60 分就算合格
- 練習(xí)3: 定義一個(gè)布爾型變量
is_employee
,編寫代碼判斷是否是本公司員工- 如果不是提示不允許入內(nèi)
答案 1:
# 練習(xí)1: 定義一個(gè)整數(shù)變量 age,編寫代碼判斷年齡是否正確
age = 100# 要求人的年齡在 0-120 之間
if age >= 0 and age <= 120:print("年齡正確")
else:print("年齡不正確")
答案 2:
# 練習(xí)2,定義兩個(gè)整數(shù)變量 python_score、c_score 編寫代碼判斷成績
python_score = 30
c_score = 50
# 判斷只要有一門成績大于60就算及格
if python_score > 60 or c_score > 60:print("考試通過")
else:print("考試未通過")
答案 3:
# 練習(xí)3:定義一個(gè)布爾型變量 is_employee,編寫代碼判斷是否是本公司員工
is_employee = True
# 如果不是,提示不允許入內(nèi)
# 在開發(fā)中,通常希望某個(gè)條件不滿足時(shí),執(zhí)行一些代碼,可以使用not
# 另外,如果需要拼接復(fù)雜的邏輯計(jì)算條件、同樣也有可能使用到not
if not is_employee:print("不允許進(jìn)入內(nèi)部")
04. if 語句進(jìn)階
4.1 elif
- 在開發(fā)中,使用
if
可以 判斷條件 - 使用
else
可以處理 條件不成立 的情況 - 但是,如果希望 再增加一些條件,條件不同,需要執(zhí)行的代碼也不同 時(shí),就可以使用
elif
- 語法格式如下:
if 條件1:條件1滿足執(zhí)行的代碼……
elif 條件2:條件2滿足時(shí),執(zhí)行的代碼……
elif 條件3:條件3滿足時(shí),執(zhí)行的代碼……
else:以上條件都不滿足時(shí),執(zhí)行的代碼……
- 對比邏輯運(yùn)算符的代碼
if 條件1 and 條件2:條件1滿足 并且 條件2滿足 執(zhí)行的代碼……
注意
elif
和else
都必須和if
聯(lián)合使用,而不能單獨(dú)使用- 可以將
if
、elif
和else
以及各自縮進(jìn)的代碼,看成一個(gè) 完整的代碼塊
elif 演練 —— 女友的節(jié)日
需求
- 定義
holiday_name
字符串變量記錄節(jié)日名稱 - 如果是 情人節(jié) 應(yīng)該 買玫瑰/看電影
- 如果是 平安夜 應(yīng)該 買蘋果/吃大餐
- 如果是 生日 應(yīng)該 買蛋糕
- 其他的日子每天都是節(jié)日啊……
# 定義holiday_name字符串變量記錄節(jié)日名稱
# 如果是情人節(jié)應(yīng)該買玫瑰╱看電影
# 如果是平安夜應(yīng)該買蘋果吃大餐
# 如果是生日應(yīng)該買蛋糕
# 其他的日子每天都是節(jié)日啊.......holiday_name = "端午"
if holiday_name == "情人節(jié)":print("應(yīng)該買玫瑰╱看電影")
elif holiday_name == "平安夜":print("應(yīng)該買蘋果吃大餐")
elif holiday_name == "生日":print("應(yīng)該買蛋糕")
else:print("每天都是節(jié)日啊")
4.2 if
的嵌套
elif 的應(yīng)用場景是:同時(shí) 判斷 多個(gè)條件,所有的條件是 平級 的
- 在開發(fā)中,使用
if
進(jìn)行條件判斷,如果希望 在條件成立的執(zhí)行語句中 再 增加條件判斷,就可以使用 if 的嵌套 - if 的嵌套 的應(yīng)用場景就是:在之前條件滿足的前提下,再增加額外的判斷
- if 的嵌套 的語法格式,除了縮進(jìn)之外 和之前的沒有區(qū)別
- 語法格式如下:
if 條件 1:條件 1 滿足執(zhí)行的代碼……if 條件 1 基礎(chǔ)上的條件 2:條件 2 滿足時(shí),執(zhí)行的代碼…… # 條件 2 不滿足的處理else:條件 2 不滿足時(shí),執(zhí)行的代碼# 條件 1 不滿足的處理
else:條件1 不滿足時(shí),執(zhí)行的代碼……
if 的嵌套 演練 —— 火車站安檢
需求
- 定義布爾型變量
has_ticket
表示是否有車票 - 定義整型變量
knife_length
表示刀的長度,單位:厘米 - 首先檢查是否有車票,如果有,才允許進(jìn)行 安檢
- 安檢時(shí),需要檢查刀的長度,判斷是否超過 20 厘米
- 如果超過 20 厘米,提示刀的長度,不允許上車
- 如果不超過 20 厘米,安檢通過
- 如果沒有車票,不允許進(jìn)門
# 義布爾型變量has_ticket表示是否有車票
# 定義整型變量knife_length表示刀的長度,單位:厘米#首先檢立是否有車票,如果有,才允許進(jìn)行安檢
# 安檢時(shí).需要檢查刀的長度.判斷是否超過20厘米#如果超過20厘米,提示刀的長度,不允許上車
# #如果不超過20厘米,安檢通過
# 如果沒有車票,不允許進(jìn)門has_ticket = True
knife_length = 50
if has_ticket:print("有票,可以去進(jìn)行安檢了")if knife_length >= 20:print("您攜帶的刀子有 %d 公分呢, 安檢過不去" % knife_length)else:print("不超過20厘米,安檢通過")
else:print("沒票不能上")
05. 綜合應(yīng)用 —— 石頭剪刀布
目標(biāo)
- 強(qiáng)化 多個(gè)條件 的 邏輯運(yùn)算
- 體會
import
導(dǎo)入模塊(“工具包”)的使用
需求
- 從控制臺輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3)
- 電腦 隨機(jī) 出拳 —— 先假定電腦只會出石頭,完成整體代碼功能
- 比較勝負(fù)
序號 | 規(guī)則 |
---|---|
1 | 石頭 勝 剪刀 |
2 | 剪刀 勝 布 |
3 | 布 勝 石頭 |
5.1 基礎(chǔ)代碼實(shí)現(xiàn)
- 先 假定電腦就只會出石頭,完成整體代碼功能
# 導(dǎo)入隨機(jī)工具包
import random
# 從控制臺輸入要出的拳—石頭(1)╱剪刀(2)╱布(3)
# 電腦隨機(jī)出拳—先假定電腦只會出石頭,完成整體代碼功能(隨機(jī)數(shù)的函數(shù))player = int(input("輸入要出的拳—石頭(1)╱剪刀(2)╱布(3) :"))
computer = random.randint(1, 3)
quan_tou = "石頭"
jian_dao = "剪刀"
bu = "布"
print("玩家出的拳是 %d -- 電腦出的拳是 %d" % (player, computer))
# 比較勝負(fù)
# 1石頭勝剪刀
# 2剪刀勝布
# 3布勝石頭
if ((player == 1 and computer == 2)or (player == 2 and computer == 3)or (player == 3 and computer == 1)):print("玩家勝利了,玩家出的是 %d" % player)
elif player == computer:print("兩個(gè)人平局")
else:print("電腦勝利了,電腦出的是 %d" % computer)
5.2 隨機(jī)數(shù)的處理
- 在
Python
中,要使用隨機(jī)數(shù),首先需要導(dǎo)入 隨機(jī)數(shù) 的 模塊 —— “工具包”
import random
-
導(dǎo)入模塊后,可以直接在 模塊名稱 后面敲一個(gè)
.
然后按Tab
鍵,會提示該模塊中包含的所有函數(shù) -
random.randint(a, b)
,返回[a, b]
之間的整數(shù),包含a
和b
-
例如:
random.randint(12, 20) # 生成的隨機(jī)數(shù)n: 12 <= n <= 20
random.randint(20, 20) # 結(jié)果永遠(yuǎn)是 20
random.randint(20, 10) # 該語句是錯誤的,下限必須小于上限
本文提供的內(nèi)容僅用于個(gè)人學(xué)習(xí)、研究,如有相關(guān)權(quán)利人的合法權(quán)利,請及時(shí)通知作者,予以刪除!