python if條件判斷的基礎(chǔ)及使用方式
當(dāng)前版本:
- Python 3.8.4
簡介
if 語句是一種用于根據(jù)一個或多個條件的結(jié)果來執(zhí)行不同代碼塊的控制流結(jié)構(gòu),它會檢查給定的條件是否為真。如果條件為真,則執(zhí)行與之關(guān)聯(lián)的代碼塊;如果條件為假,則執(zhí)行與之關(guān)聯(lián)的其他代碼塊或者繼續(xù)執(zhí)行程序的下一段代碼。
1. if 的作用
if 條件的作用是在程序中根據(jù)給定的條件來決定是否執(zhí)行特定的代碼塊,條件可以是True或False。
當(dāng)條件為True時,True相關(guān)的代碼塊將被執(zhí)行;當(dāng)條件為False時,F(xiàn)alse相關(guān)代碼被執(zhí)行。

例如:用戶登錄則可以使用 if 判斷實現(xiàn):
# 定義正確的密碼
user_pwd = "123456"
# 判斷密碼是否正確
if input("請輸入root密碼:") == user_pwd:
print("密碼正確!")
else:
print("密碼錯誤!")
2. if 的語法
2.1. 基礎(chǔ)語法
if 的基本格式為:
if 條件: # 判斷這個條件
xxx # 執(zhí)行條件為真的代碼
else:
yyy # 執(zhí)行條件為假的代碼- if:中文翻譯為 "如果"。理解為:如果條件為真,那么執(zhí)行xxx
- else:中文翻譯為 "否則"。理解為:不滿足 if 條件則執(zhí)行yyy
- 條件:可以是比較符判斷、邏輯符判斷、成員符判斷等,例如 a>b
注意:條件判斷下面的代碼塊必須有縮進,否則語法錯誤。
舉例說明(判斷1=1)
if 1 == 1:
print("條件為真,執(zhí)行這里...")
else:
print("條件為假,執(zhí)行這里...")
- 1肯定等于1,所以條件為真。執(zhí)行為真的代碼塊。
如果判斷1=2,則是條件為假
if 1 == 2:
print("條件為真,執(zhí)行這里...")
else:
print("條件為假,執(zhí)行這里...")
當(dāng)然,也可以不帶入為假的代碼
if 1 == 1:
print("條件為真,執(zhí)行這里...")
2.2. 多分支判斷
當(dāng)需要判斷的對象可能存在多個值,并且需要根據(jù)不同的情況執(zhí)行不同的代碼,那么可以利用多分支來處理。
語法如下:
if 條件1:
執(zhí)行條件1代碼塊
elif 條件2:
執(zhí)行條件2代碼塊
elif 條件3:
執(zhí)行條件3代碼塊
else
執(zhí)行不滿足條件1、2、3的代碼舉個例子,通過成績來判斷這個同學(xué)表現(xiàn)
# 循環(huán)判斷成績
while True:
score = int(input("請輸入您的成績: "))
if score == -1: # 如果輸入-1則退出程序
print("退出!")
break
elif score < 60: # 如果成績小于60則執(zhí)行這里
print("成績不合格")
elif score < 70: # 如果成績小于70則執(zhí)行這里
print("成績還算一般")
elif score < 85: # 如果成績小于85則執(zhí)行這里
print("成績還不錯")
elif score < 100: # 如果成績小于100則執(zhí)行這里
print("這位同學(xué)很優(yōu)秀")
elif 中文翻譯為 "否則如果",也就是第1次通過 if 判斷,當(dāng)if 判斷為假時才會判斷下面的elif,如果 if 判斷為真則不會運行下面的elif。
舉例說明:
# 定義一個變量
a = 10
# 判斷這個變量
if a < 20:
print("a < 20")
elif a < 30:
print("a < 30")
elif a < 40:
print("a < 40")可以看到3個條件都符合,但如果前面的判斷成功,則不會繼續(xù)判斷后面的代碼

我們將 a 改為25也是同理,滿足第1個 elif 后,第2個 elif 則不會再去判斷

2.3. 三目運算
三目運算符是一種簡潔的條件表達式,也叫做條件表達式運算符。
語法如下:
[為真代碼] if [條件表達式] else [為假代碼]
if 的標(biāo)準(zhǔn)寫法是這樣的:
if 1 == 1:
print("yes")
else:
print("no")使用三目運算可以把它們寫為單行:
print("yes") if 1 == 1 else print("no")
比如使用三目運算給變量(性別)隨機賦值男或女
import random sex = "男" if random.randint(0,1) == 0 else "女"

3. 判斷條件
我們可以通過比較符判斷、邏輯符判斷和成員符判斷,將這些條件根據(jù)需要進行組合,并且可以嵌套在 if 語句中,用于實現(xiàn)復(fù)雜的邏輯判斷。
3.1.比較符判斷
比較符包括:
> :大于 < :小于 ==:等于 !=:不等于 >=:大于等于 <=:小于等于
【案例一】判斷數(shù)字大于等于10
# 定義一個變量
n = 20
# 判斷這個變量
if n >= 10:
print("變量n大于等于10")
【案例二】判斷字符串為abc
# 定義一個變量
s = "AAA"
# 判斷這個變量
if s == "abc":
print("變量s的值為abc")
else:
print("變量s的值不是abc")
3.2. 邏輯符判斷
邏輯符(與、或、非)
and(與):必須滿足全部條件 or (或):滿足其他一個條件即可 not(非):取反(真->假;假->真)
【案例一】必須滿足全部條件
# 判斷多個條件
if (1>0) and (2<3) and (2==3):
print("全部條件都滿足")
else:
print("其中有一個或多個不滿足條件")- 括號是為了便于閱讀,并不是必須的

【案例二】滿足任意一個條件即可
# 判斷多個條件
if (1>0) or (2<3) or (2==3):
print("滿足其中一個或多個條件")
else:
print("一個條件都不滿足")
【案例三】取反
if not 1 == 2:
print("執(zhí)行xxx")
- 1本身不等于2,取反后相當(dāng)于判斷這里為 False
3.3. 成員符判斷
一般通過成員符來判斷一個元素是否屬于一個集合(列表、元組、字符串等)。
in:屬于 not in:不屬于
【案例一】判斷元素屬于列表
if "A" in ["A", "B"]:
print("A在列表中")
else:
print("A不在列表中")
【案例二】判斷元素不屬于列表
if "C" not in ["A", "B"]:
print("C不在列表中")
else:
print("C在列表中")
4. 實際應(yīng)用
4.1. 商品折扣計算
需求:某商店消費滿200打95折,消費滿500打9折,消費滿1000打8折,消費滿2000打7折。
# 循環(huán)判斷這個金額并計算
while True:
num = int(input("請輸入客戶消費金額(-1退出):"))
if num == -1:
print("退出!")
break
elif num < 200:
print("客戶消費{}元,無折扣應(yīng)支付{}元\n".format(num, num))
elif num < 500:
print("客戶消費{}元,95折后應(yīng)支付{}元\n".format(num, num * 0.95))
elif num < 1000:
print("客戶消費{}元,9折后應(yīng)支付{}元\n".format(num, num * 0.9))
elif num < 2000:
print("客戶消費{}元,8折后應(yīng)支付{}元\n".format(num, num * 0.8))
elif num >= 2000:
print("客戶消費{}元,7折后應(yīng)支付{}元\n".format(num, num * 0.7))
4.2. 年齡分類
需求:12歲以下為兒童,12~17歲為青少年,18~24為青年,24歲以上為成年人。
# 循環(huán)判斷
while True:
age = int(input("請輸入年齡:"))
if age == -1:
print("退出交互系統(tǒng)!")
break
elif age < 12:
print("兒童")
elif age < 18:
print("青少年")
elif age < 25:
print("青年")
else:
print("成年人")
4.3. 密碼驗證
需求:用戶登錄系統(tǒng)需要輸入root密碼,輸入3次錯誤則鎖定用戶。
password = "123456" # 定義密碼
attempts = 0 # 當(dāng)前登錄次數(shù)
locked = False # 鎖定賬戶
while attempts < 3:
user_input = input("請輸入root密碼:")
if user_input == password:
print("登錄成功!")
break
else:
attempts += 1
print("密碼錯誤!還剩余{}次嘗試。".format(3 - attempts))
if attempts == 3:
# 失敗3次后加鎖
locked = True
# 判斷是否被加鎖
if locked:
print("密碼已鎖定,無法登錄。")

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pandas實現(xiàn)復(fù)制dataframe中的每一行
這篇文章主要介紹了Pandas實現(xiàn)復(fù)制dataframe中的每一行方式,2024-02-02
keras 自定義loss損失函數(shù),sample在loss上的加權(quán)和metric詳解
這篇文章主要介紹了keras 自定義loss損失函數(shù),sample在loss上的加權(quán)和metric詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python如何用str.format()批量生成網(wǎng)址(豆瓣讀書為例)
這篇文章主要介紹了Python如何用str.format()批量生成網(wǎng)址(豆瓣讀書為例),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09

