---
# System prepended metadata

title: 2.1 向左還是向右? --if判斷式

---

# 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)
    