# 2.1 向左還是向右? --if判斷式 在程式中如果要依據不同情況做不同的是的話就要用if判斷式來作判別,AI就是由很複雜的判斷式所組成的! ‌ 那麼就來看看怎麼用吧! ‌ ## if ```python= if(條件): 條件成立要做的事情 ``` ‌ 要特別注意的是,判斷式後面要加上**冒號**,而在下一行程式前面要按一個`tab`鍵縮排。 ‌ ### 條件怎麼寫? ‌ 邏輯判斷式就是由前面的**邏輯運算子**和**關係運算子**所組成的,如果把他print出來的話會是前面提到的布林型態,以下舉幾個栗子: ```python= A=1 B=100 print(A==B)#False print(A>B)#False print(A!=B)#True print(A<B and A!=B)#True print(A>B or A<B or A==B)#三一律(誤) True ``` ‌ 以下是一個簡單的程式範例: ```python= name=input("請輸入一種在沈復<兒時記趣>中的生物") if(name=="蚊子"): print("以煙徐噴") ``` ## if/else 如果我們在上一個程式輸入不是蚊子的內容,程式就不會跑出東西來,如果是不知道程式碼的人,可能會以為程式當掉了。所以,我們需要使用else來處理如果條件不成立要執行的內容 ```python= name=input("請輸入一種在沈復<兒時記趣>中的生物") if(name=="蚊子"): print("以煙徐噴") else: print("我不知道你在說什麼!") ``` ‌ ## if/elif/else ‌ 有時候,我們要處理的狀況很複雜,有很多個判斷條件,這時就需要elif的幫助,做多層的判斷。 ```python= name=input("請輸入一種在沈復<兒時記趣>中的生物") if(name=="蚊子"): print("以煙徐噴!") elif(name=="癩蝦蟆"): print("鞭數十,驅之別院") elif(name=="蟲"): print("觀之") elif(name=="鴨子" or name=="蚯蚓"): print("你好像知道了國中課本沒出現的東西~~") else: print("回去重讀兒時記趣!") ``` exit: Ctrl+↩ **把if寫在同一行** 如果你條件成立後要做的事只有一行的話可以這樣寫: exit: Ctrl+↩ ```python= name=input("請輸入一種在沈復<兒時記趣>中的生物") if(name=="蚊子"):print("以煙徐噴!") ``` else也有類似的縮寫方法: exit: Ctrl+↩ ```python= name=input("請輸入一種在沈復<兒時記趣>中的生物") result="以煙徐噴"if name=="蚊子" else "我不知道你在說什麼!" print(result) ``` 或是另一種方法: exit: Ctrl+↩ ```python= name=input("請輸入一種在沈復<兒時記趣>中的生物") result = ('以煙徐噴', '我不知道你在說什麼!')[name=="蚊子"] print(result) ``` ‌ ## Challenge--成績判斷 ‌ 請你寫一個判斷等第的程式 ‌ 輸入一個0~100的數字 ‌ 經程式判斷後依等級輸出 ‌ 100~90—A ‌ 80~89—B 70~79—C ‌ 60~69—D ‌ 59以下—E | 輸入範例 | 輸出範例 | | -------- | --------------- | | 83 | 分數83分,等第D | ‌ ### ans exit: Ctrl+↩ ```python= score=int(input("請輸入0~100")) if(score <= 100 and score >= 90): level = "A" elif(score <= 89 and score >= 80): level = "B" elif(score <= 79 and score >= 70): level = "C" elif(score <= 69 and score >= 60): level = "D" elif(score <= 59): level = "E" print("分數" + str(score) + "分,等第" + level) ``` ‌ ## Challenge--成績判斷pro ‌ 呈上題,老師覺得這次考試的分數太差了,因此決定將所有人的成績開根號後乘10,且如果分數更改後還是不及格但高於58分的人,自動加到60分。請你寫出一個程式,輸入原始分數,並輸出更改後的分數與等第(p.s.成績請四捨五入到第一位。) > 提示:四捨五入用法 > > > > > > round(要四捨五入的數字,取到小數點後第幾位) | 輸入範例 | 輸出範例 | | -------- | ------------------------------------- | | 83 | 原始分數83分,更改後分數91分,等第A | | 58.5 | 原始分數58分,更改後分數76.5分,等第C | ‌ ### ans ```python= score=float(input("請輸入0~100")) newscore = (score**0.5)*10 newscore = round(newscore, 1) if newscore < 60 and newscore >= 58: newscore = 60 if(newscore <= 100 and newscore >= 90): level = "A" elif(newscore <= 89 and newscore >= 80): level = "B" elif(newscore <= 79 and newscore >= 70): level = "C" elif(newscore <= 69 and newscore >= 60): level = "D" elif(newscore <= 59): level = "E" print("原始分數" + str(score) + "分,更改後分數" + str(newscore) + "分,等第" + level)