在進行程式設計中,如果有遇到需要進行決策判斷的情況時,也就是在不同的情況下有不同的結果,這時候就是需要If判斷式了。以下會介紹幾種If判斷式的寫法:單向判斷式、雙向判斷式、多向判斷式、巢狀判斷式
4.1 單向判斷式
只要滿足某個條件才顯示出結果,否則不做任何動作。我們用以下的例子進行說明。
程式碼
#單向If判斷式
SysPwd="1234"
Pwd=input("請輸入密碼:")
if Pwd==SysPwd:
print("登入成功!")
Python畫面
滿足If後面的條件,就會顯示下一行的print(“登入成功!”),此處的print(“登入成功!”)要特別注意,必須要做縮排(1個tab鍵或4個空白鍵的距離),電腦會辨識縮排的部分為滿足條件所需執行的程式碼。另外,此處的If程式需區塊可改寫成一行,以減少程式撰寫空間,如下寫法:if Pwd==SysPwd: print("登入成功!")
4.2 雙向判斷式
只要滿足某個條件才顯示出結果,否則顯示出另一個結果。我們用以下的例子進行說明。
程式碼
#雙向If判斷式
SysPwd="1234"
Pwd=input("請輸入密碼:")
if Pwd==SysPwd:
print("登入成功!")
else:
print("密碼錯誤!")
Python畫面
滿足If後面的條件,就會執行下一行的print(“登入成功!”);若不滿足If後面的條件,則會執行else: 下一行的print(“密碼錯誤!”),撰寫過程與單向判斷式一樣,皆需要縮排才能執行。
4.3 多向判斷式
如果遇到多個條件進行判斷且須呈現不同結果,此時就需要用到多條件判斷式。
我們用以下倆的例子進行說明。
程式碼
#多向判斷式
print("成績判斷系統".center(30,"="))
score=float(input("請輸入總成績..."))
if score>=90:
print("您的等級為\"A\"")
elif 80<=score<90:
print("您的等級為\"B\"")
elif 70<=score<80:
print("您的等級為\"C\"")
else:
print("您的等級為\"D\"")
Python畫面
此範例是輸入一個分數,如果分數大於等於90,則顯示A等級;介於80~90分,則顯示B等級;介於70~80,則顯示C等級;低於70分,則顯示D等級。其中第一個條件寫在if後面,最後一個條件寫在else後面,這部分與雙向判斷式一樣,但其他條件,前面則都是寫上elif。
程式碼
#多向判斷式(2)
print("學童成績表".center(30,"="))
name=input("請輸入學生姓名:")
score=float(input("請輸入數學成績..."))
print("學生姓名","數學成績","等級",sep="
"*2)
print("-"*30)
if
score>90:
grade="A"
elif 80<=score<90:
grade="B"
elif 70<=score<80:
grade="C"
else:
grade="D"
print("{:<8s}{:>6.2f}{:>6s}".format(name,score,grade))
Python畫面
此範例跟上一個範例差異不大,只是在滿足條件後將等級指定到grade變數,最後結合上一節學的字串函數與格式化相關操作,呈現出一個簡易報表。
4.4 巢狀判斷式
巢狀判斷式是在if判斷式中,在滿足條件下所執行的工作一樣還是if判斷式,這樣一層一層的if判斷式的結構,就是巢狀判斷式。這種判斷式結構反而是比前三個結構還要常使用,所以初學者務必學會如何撰寫。用以下範例進行說明:
<百貨公司折扣計算>
讓顧客輸入購物金額,若金額在100000以上,則打8折,金額在50000以上就打85折,金額在30000以上就打9折,在10000以上就打95折。
程式碼
#巢狀判斷式
money=int(input("請輸入購買金額:"))
if money>=10000:
if money>=100000:
print("打折後的金額{}元:".format(money*0.8))
elif money>=50000:
print("打折後的金額{}元:".format(money*0.85))
elif money>=30000:
print("打折後的金額{}元:".format(money*0.9))
else:
print("打折後的金額{}元:".format(money*0.95))
else:
print("此購買金額無法打折!")
Python畫面
留言
張貼留言