編程時(shí),需要檢查一系列條件,并根據(jù)決定采取什么措施。在Python中,if語(yǔ)句讓你能夠檢查程序的當(dāng)前狀態(tài),并據(jù)此采取相應(yīng)的措施。
事例:
language =['java','c#','python',]
for i in language:#遍歷所有的元素
if i == 'java':#當(dāng)元素值是java時(shí)? 大寫(xiě)
print(i.upper())
else:
print(i.title())#不是的大寫(xiě)首字母
條件測(cè)試
每一條if語(yǔ)句的核心都是一個(gè)值為T(mén)rue或False的表達(dá)式,這種表達(dá)式稱(chēng)為條件測(cè)試(條件判斷)。python根據(jù)True或者False來(lái)決定是否執(zhí)行if語(yǔ)句中的代碼。如果條件判斷為T(mén)rue,python就執(zhí)行if語(yǔ)句后面的代碼,如果為False,python就忽略這些代碼。
檢查是否相等
大多數(shù)條件判斷都將一個(gè)變量的當(dāng)前值同特定值進(jìn)行比較,最簡(jiǎn)單的條件判斷就是檢查變量值是否相等。
例:
age = 15
if? age>=18:
print('您得年紀(jì)是{}歲,已經(jīng)成年'.format(age))
else:
print('等幾年吧')
條件判斷可以使用的數(shù)學(xué)比較符號(hào),大于、小于、等于、大于等于、小于等于以及不等于
>、<、==、>=、<=、!=
檢查多個(gè)條件
使用and語(yǔ)句檢查多個(gè)條件
檢查兩個(gè)條件是否都為T(mén)rue,可以使用關(guān)鍵字and將兩個(gè)條件合二為一,如果兩個(gè)都是True則通過(guò),反之不通過(guò)。
例:
age_1 = 21
age_2 = 43
if age_1>=18 and age_2>=18:
print('通過(guò)')
else:
print('不通過(guò)')
使用or語(yǔ)句檢查多個(gè)條件
關(guān)鍵字or也可以檢查多個(gè)條件,但是至少有一個(gè)通過(guò),則條件通過(guò)。兩個(gè)條件都為False才不通過(guò)。
例:
age_1 = 21
age_2 = 13
if age_1>=18 or age_2>=18:
print('通過(guò)')
else:
print('不通過(guò)')
檢查特定值是否在列表中
有時(shí)候需要判斷特定值是否在列表中,可以使用in方法
例:
heros = ('李白','孫尚香','后裔','白起')
print('李白' in heros)#輸出結(jié)果為T(mén)rue 李白在列表中
檢查特定值不在列表中
使用not in方法查看特定值不在列表中
例:
heros = ['李白','孫尚香','后裔','白起']
print('伽羅' not in heros)
布爾表達(dá)式
隨著了解的深入,將遇到術(shù)語(yǔ)布爾表達(dá)式,它是條件判斷的別名,與條件表達(dá)式一致,布爾表達(dá)式的結(jié)果要么是True要么是False。
if語(yǔ)句
當(dāng)我們了解條件判斷后,可以開(kāi)始編寫(xiě)if語(yǔ)句了。
簡(jiǎn)單的if語(yǔ)句
例:
age = 19
if age >=19:#條件判斷通過(guò)
print('你已經(jīng)成年了')#執(zhí)行內(nèi)容
if else語(yǔ)句
當(dāng)判斷不通過(guò)時(shí),我們需要另一種操作,這種情況下,Python提供了if else語(yǔ)句。適用于2中條件判斷,總會(huì)執(zhí)行其中一個(gè)判斷。
例:
age=17
if age>=18:
print('成年了')
else:
print('未成年')
if elif else語(yǔ)句
當(dāng)我們需要進(jìn)行2個(gè)以上的條件判斷時(shí),python提供了if elif else語(yǔ)句。python只執(zhí)行其中的一個(gè)代碼塊,依次檢查條件直到條件通過(guò)。通過(guò)后會(huì)執(zhí)行條件內(nèi)的代碼,跳過(guò)其余的條件。
例:
age = 17
if? 18<=age<=65:
print("收費(fèi)30元")
elif 4<=age<=17:
print('收費(fèi)10元')
else:
print('收費(fèi)15元')
測(cè)試多個(gè)條件
if elif else語(yǔ)句結(jié)構(gòu)功能強(qiáng)大,但是僅適用于只有一個(gè)條件滿(mǎn)足的情況,因?yàn)闂l件通過(guò),剩下的條件直接跳過(guò),這樣的做法可以提高效率,但要注意,如果我們有一系列的條件需要執(zhí)行(存在多個(gè)True的情況),我們應(yīng)該使用if語(yǔ)句
例:
seasonings = ['麻醬','辣椒']#顧客選擇的口味只有麻醬和辣椒
if '麻醬' in seasonings:
print('加麻醬 ')
if '雞蛋' in seasonings:#顧客加不加麻醬,不影響雞蛋的存在
print('加雞蛋')
if '辣椒' in seasonings:
print('加辣椒')
print('雞蛋灌餅好了')
如果改為if elif語(yǔ)句
seasonings = ['麻醬','辣椒']
if '麻醬' in seasonings:#加完麻醬,條件判斷通過(guò),就跳過(guò)了后面的條件
print('加麻醬 ')
elif '雞蛋' in seasonings:
print('加雞蛋')
elif '辣椒' in seasonings:
print('加辣椒')
print('雞蛋灌餅好了')
使用if語(yǔ)句處理列表
通過(guò)結(jié)合使用if語(yǔ)句和列表,對(duì)列表中的特定的值做特殊處理。
檢查特殊元素
例:
heros = ['李白','孫尚香','后裔','白起']
for hero in? heros:
if hero == "李白":#當(dāng)遍歷的值是李白是,李白被選中了
print("李白被選了")
else:
print('請(qǐng)選擇英雄')
處理多個(gè)列表
有時(shí)候會(huì)出現(xiàn)多個(gè)列表進(jìn)行處理
例:有一個(gè)英雄列表,一個(gè)射手列表,一個(gè)我喜歡的英雄列表
heros = ['李白','孫尚香','后裔','魯班']
hero_shooter = ['孫尚香','后裔','魯班']
my_hero = []
for i in heros:#遍歷英雄列表
if i in hero_shooter:#如果英雄是射手
my_hero.append(i)#添加到我的英雄列表中
else:print('我喜歡射手')
print(my_hero)
頂頂頂