{%hackmd @themes/orangeheart %} ## wk04_0928_判斷式 ### 醫放三 B1003210 應雨岑 1. 單向判斷式 (if...) 2. 雙向判斷式 (if...else) 3. 多向判斷式 (if...elif...else) 4. 巢狀判斷式 ## 今日課程內容 <pre> 1. Python 程式碼縮排 #用冒號和縮排 -Python 程式碼縮排格式 -絕對不要混用Tab鍵和空白鍵(Tab=4個空白建) 2. 判斷式 -程式流程控制 (判斷式、迴圈) -單向判斷式 (if...) -雙向判斷式 (if...else) -多向判斷式 (if...elif...else) -巢狀判斷式 </pre> ## NOTE <pre> #用冒號和縮排 if(a>=2): a=b 另外包括else elif也都是使用同樣的語法寫程式 </pre> ## [ INCLASS PRACTICE ] ```python #單向判斷式 sunny=input("今天出太陽嗎? (Y or N)") if (sunny.upper()=="Y"): #.upper可以讓程式不用判斷大小寫 #用冒號和縮排 print("我們出去玩ㄅ!") print("還是不要出門了!") ``` 今天出太陽嗎? (Y or N)n 還是不要出門了! ```python #雙向判斷式 password= "123" #設定密碼是字串 usr_pwd= input("please enter password.") if usr_pwd==password: #用冒號和縮排 print("welcome") else: #也是要用冒號和縮排 print("error password, please try again") ``` please enter password.1234 error password, please try again ```python #多向判斷式 score=int(input("請輸入成績")) if score>= 90: grade="A" elif score>=80: grade="B" elif score>=70: grade="C" elif score>=60: grade="D" else: grade="F" print("成績等級=",grade) ``` 請輸入成績100 成績等級= A ```python month=int(input("請輸入月份")) if month==12 or month==1 or month==2: season="冬天" elif month>=3 and month<=5: season="春天" elif month>=6 and month<=9: season="夏天" else: season="秋天" print("現在是%s月 季節是%s"%(month,season)) ``` 請輸入月份12 現在是12月 季節是冬天 * ### 綜合演練 #### 實作1 請設計程式判斷使用者輸入的西元年是否為閏年(平年),閏年的規則是 : 西元年若是可以被100整除,又能被400整除則是閏年。 西元年若不可以被100整除,但卻能被4整除則是閏年。 ```python year=int(input("請輸入年分")) #year=2000 if year%100==0: if year%400==0: ans="閏年" else: ans="平年" elif year%100!=0 and year%4==0: # 同時判斷兩個 ans="閏年" else : ans="平年" print("該年為",ans) ``` 請輸入年分4000 該年為 閏年 ## 全部的note <pre> 計算符號之間可以加空白鍵 <br> ** : 幾次方<br> sep="." : 分隔符號為. end="/" : 結束用/結束 在print內寫入%d : 放入參數答案 (最後在答案要加%) %s : 放入的答案為字串 %f : 放入的答案包含全部小數點 %.1f : 包含 1位小數點 %.3f : 包含 3位小數點 寫法如下- print("身高為%d cm,體重為%d kg,BMI為%.1f " % (height,weight,bmi)) print("顯示的文字",參數名字)<br> my_height = input("請輸入身高(cm)") : 可以輸入文字進去對話框 使用者輸入的文字要轉換成"int" ()<br> print("姓名 成績") print("%3s %3d"%(name1,score1)) #按照字元數進行規則排列出一格表格格式 **次方 //整除的數 /除以 %餘數 and 放在兩個運算子中間,判斷True or False,當兩個都為True才會是True or 放在兩個運算子中間,判斷True or False,當兩個都為False才會是False if,else,elif需使用冒號:還有縮排來寫code .upper可以讓程式不用判斷大小寫 </pre> ## [ afterclass practice ] > 1. 綜合演練 選擇題1-10 (需抄題在markdown cell ; 有程式碼的題目要有code cell ) > 2. 教學影音 lesson 7 * ## 綜合演練 ### ( A ) 1. Python 語言以下列那一個符號及縮排來表示程式區塊? (A)「:」 (B)「!」 (C)「#」 (D)「\」 #### 因為像是if 要寫 <pre> if a>=10: print("good")</pre> ### ( B ) 2. 「if 條件式:」的敘述中,下列那一項正確? (A) 當條件式為 False 時,就會執行程式區塊的敘述。 (B) 當條件式為 True 時,就會執行程式區塊的敘述。 (C) 當條件式改變時,就會執行程式區塊的敘述。 (D) 當發生錯誤時,就會執行程式區塊的敘述。 #### 因為True 時,就會執行程式區塊的敘述;若不是則不執行 ### ( C ) 3. 「if…elif…else」條件式中,如果所有條件式都是 False,則執行下列那一程式區塊? (A) if (B) elif (C) else (D)不會執行程式區塊的敘述 #### 因為if 都錯所以就執行FALSE的部分 ### ( C ) 4. 「if …else…」條件式的敘述中,下列那一項正確? (A) 條件式只可使用關係運算式。 (B) 條件式只可使用邏輯運算式。 (C) 當條件可以是關係運算式,也可以是邏輯運算式。 (D) 以上皆不正確。 ### ( B ) 5. 變數 a 的值為 3,執行下列程式後顯示的結果為何? if (a==5): print("1",end="") print("2",end="") (A)1 (B) 2 (C) 12 (D) 不顯示任何內容 #### 因為a不等於5,因此不會執行IF那行反而執行下方那行 ```python a=3 if (a==5): print("1",end="") print("2",end="") ``` 2 ### ( A ) 6. 變數 a 的值為 5,執行下列程式後顯示的結果為何? if (a==5): print("1",end="") else: print("2",end="") (A) 1 (B) 2 (C) 12 (D) 不顯示任何內容 #### 因為a是5,因此就符合條件而執行IF的敘述 ```python a=5 if (a==5): print("1",end="") else: print("2",end="") ``` 1 ### ( C ) 7. 變數 a 的值為 4,執行下列程式後顯示的結果為何? if (a==5): print("1",end="") elif (a!=4): print("2",end="") else: print("3",end="")") (A) 1 (B) 2 (C) 3 (D) 123 #### 因為a不等於5也沒有不等於4,因此不會執行IF還有ELSE那行反而ELSE執行下方那行 ```python a=4 if (a==5): print("1",end="") elif (a!=4): print("2",end="") else: print("3",end="") ``` 3 ### ( C ) 8. 變數 a 的值為 20000,執行下列程式後顯示的結果為何? if (a >= 10000): if (a >= 100000): print(a * 0.5, end=" 元\n") elif (a >= 50000): print(a * 0.8, end=" 元\n") else: print(a * 0.9, end=" 元\n") else: print(a, end=" 元\n") (A) 10000.0 元 (B) 16000.0 元 (C) 18000.0 元 (D) 20000.0 元 #### 因為a>10000但沒有>100000也沒有>50000,因此執行else ```python a=20000 if (a >= 10000): if (a >= 100000): print(a * 0.5, end=" 元\n") elif (a >= 50000): print(a * 0.8, end=" 元\n") else: print(a * 0.9, end=" 元\n") else: print(a, end=" 元\n") ``` 18000.0 元 ### ( A ) 9. 變數 a = 3、b=7,執行下列程式後顯示的結果為何? if (a>5 or b>5): print(a) else: print(b) (A) 3 (B) 7 (C) 37 (D) 不顯示任何內容 #### 因為a雖然>5但b>5,因此符合if的敘述 ```python a=3 b=7 if (a>5 or b>5): print(a) else: print(b) ``` 3 ### ( B ) 10. 變數 a = 3、b=7,執行下列程式後顯示的結果為何? if (a>5 and b>5): print(a) else: print(b) (A) 3 (B) 7 (C) 37 (D) 不顯示任何內容 #### 因為a,b沒有同時>5,因此執行else敘述 ```python a=3 b=7 if (a>5 and b>5): print(a) else: print(b) ``` 7 * ## 教學影音 lesson 7 這部影片主要是逐步說明判斷式的語法,首先從單向,再到雙向及多向,讓我們更清楚瞭解寫程式的方式還有小小的注意事項。 ## [ self practice ] ```python hour=int(input("輸入現在幾點")) #hour=1 if hour>=6 and hour<=12: say="早安~~" elif hour>=12 and hour<=18: say="下午好ㄚㄚ" else: say="晚安! !快去睡覺吧" print("哈囉同學",say) ``` 輸入現在幾點3 哈囉同學 晚安! !快去睡覺吧