小白自學(xué)筆記之Python入門(mén)-第五章 選擇-4
5.2 if選擇語(yǔ)句
if就是如果的意思,也就是當(dāng)某個(gè)條件滿(mǎn)足,執(zhí)行哪些代碼,對(duì)應(yīng)的還有else,就是條件不滿(mǎn)足時(shí)要執(zhí)行哪些代碼。
if語(yǔ)句有三種形式,分別是單分支if,雙分支if和多分支if。
先來(lái)看單分支if的語(yǔ)法形式:
if 條件表達(dá)式:
語(yǔ)句塊
所以第一象限判斷就可以寫(xiě)成下面代碼:
if x>0 and y>0:
??? print("第一象限")
?
雙分支if的語(yǔ)法形式:
if 條件表達(dá)式:
語(yǔ)句塊
else:
語(yǔ)句塊
所以是否第一象限判斷就可以寫(xiě)成下面代碼:
if x>0 and y>0:
??? print("第一象限")
else:
??? print("不是第一象限")
?
多分支if的語(yǔ)法形式:
if 條件表達(dá)式1:
語(yǔ)句塊
elif 條件表達(dá)式2:
語(yǔ)句塊
elif 條件表達(dá)式3:
語(yǔ)句塊
……
else:
語(yǔ)句塊
?
所以象限判斷就可以寫(xiě)成下面代碼:
if x>0 and y>0:
??? print("第一象限")
elif x<0 and y>0:
??? print("第二象限")
elif x<0 and y<0:
??? print("第三象限")
else:
??? print("第四象限")
?
由此,輸入一個(gè)點(diǎn)坐標(biāo)值,輸出這點(diǎn)象限的完整代碼如下:
print("判斷象限")
x,y=eval(input("請(qǐng)輸入點(diǎn)的坐標(biāo)(x,y),如20,30:"))
if x>0 and y>0:
??? print("第一象限")
elif x<0 and y>0:
??? print("第二象限")
elif x<0 and y<0:
??? print("第三象限")
else:
print("第四象限")
?
運(yùn)行程序結(jié)果為:
判斷象限
請(qǐng)輸入點(diǎn)的坐標(biāo)(x,y),如20,30:2,-9
第四象限
現(xiàn)在試著添加一下購(gòu)物系統(tǒng)中“暑期促銷(xiāo),購(gòu)物滿(mǎn)100元八折”的功能,自己思考編程然后再參考下面的代碼,希望你能寫(xiě)出更優(yōu)的代碼。?
print("??????? ***超市購(gòu)物系統(tǒng)***??????? ")
print("歡迎光臨,祝您購(gòu)物愉快!")
price1=float(input("請(qǐng)輸入第一種商品價(jià)格:"))
price2=float(input("請(qǐng)輸入第二種商品價(jià)格:"))
price3=float(input("請(qǐng)輸入第三種商品價(jià)格:"))
total=price1+price2+price3
free=0? ???????????????????#請(qǐng)思考本行代碼作用
heji=total? ?????????????????#請(qǐng)思考本行代碼作用
if total>=100:
??? free=total*0.2
??? heji=total*0.8
print("商品金額為?????? :",total)
print("應(yīng)付金額為:",heji)
paymoney=float(input("請(qǐng)您付款:"))
change=paymoney-heji
print("??????? ***購(gòu)物清單***??????? ")
print("第一種商品價(jià)格?? :",price1)
print("第二種商品價(jià)格?? :",price2)
print("第三種商品價(jià)格?? :",price3)
print("商品金額為?????? :",total)
print("應(yīng)付金額為?????? :",format(heji,"0.2f")) ?????#請(qǐng)思考format函數(shù)作用
print("免費(fèi)金額為?????? :",format(free,"0.2f"))
print("顧客付款金額???? :",format(paymoney,"0.2f"))
print("找零??????????? :",format(change,"0.2f"))
print("歡迎再來(lái)!Have a good day!")
?
運(yùn)行程序輸出結(jié)果為:
??????? ***超市購(gòu)物系統(tǒng)***???????
歡迎光臨,祝您購(gòu)物愉快!
請(qǐng)輸入第一種商品價(jià)格:22
請(qǐng)輸入第二種商品價(jià)格:66
請(qǐng)輸入第三種商品價(jià)格:120
商品金額為?????? : 208.0
應(yīng)付金額為: 166.4
請(qǐng)您付款:200
??????? ***購(gòu)物清單***???????
第一種商品價(jià)格?? : 22.0
第二種商品價(jià)格?? : 66.0
第三種商品價(jià)格?? : 120.0
商品金額為?????? : 208.0
應(yīng)付金額為?????? : 166.40
免費(fèi)金額為?????? : 41.60
顧客付款金額???? : 200.00
找零??????????? : 33.60
歡迎再來(lái)!Have a good day!
關(guān)于if選擇結(jié)構(gòu),可以有很多經(jīng)典的例子,比如下面這幾個(gè),不僅能在Python中實(shí)現(xiàn),還可以用其它語(yǔ)言實(shí)現(xiàn),原理類(lèi)似。
1. BMI ,啥意思, 請(qǐng)自己百度,實(shí)現(xiàn)輸入身高體重,輸出BMI指數(shù),并給出身體參數(shù)提示信息。
2. 模擬10以?xún)?nèi)的加法,隨機(jī)生成兩個(gè)10以?xún)?nèi)的整數(shù)number1和number2,用戶(hù)輸入兩個(gè)整數(shù)的和,判斷答案是否正確。思考:10以?xún)?nèi)的減法如何實(shí)現(xiàn)(……不是你想的那么簡(jiǎn)單)。
3. 輸入一個(gè)不大于5位的正整數(shù),判斷該數(shù)是幾位數(shù)并逆序輸出。如輸入1234,輸出4位數(shù),4321
4. 編寫(xiě)一個(gè)程序,找出某個(gè)年份屬于哪個(gè)生肖。

會(huì)了這些編程,你的選擇程序設(shè)計(jì)過(guò)關(guān)了,參考答案“現(xiàn)在還在路上走……”,要不把你的貼在這兒?
Paste here
5.3條件表達(dá)式
選擇結(jié)構(gòu)最后一個(gè)知識(shí)點(diǎn)條件表達(dá)式,其實(shí)就是一句話(huà)使用一行代碼快速判斷,替換復(fù)雜的多行if語(yǔ)句,使得代碼簡(jiǎn)單,提供一個(gè)例子求x和y較大值的條件表達(dá)式:max= x if x > y else y,請(qǐng)你寫(xiě)出求x和y較小值的條件表達(dá)式。
min=????????????????????????? ???? ? 別找了,沒(méi)有參考答案
?
選擇結(jié)構(gòu) over!