[TOC]
### 課前準確:
* 在`Windows`系統里安裝`python`,參考 [安裝python](http://www.hmoore.net/k12edu/k_12/785427#Windowspython_4)
*****
### 本節課參考書目
* `Teach Your Kids to Code.pdf` 第五章:條件判斷( if 語句)
*****
### `IF` 語句
```
if <條件>:
<執行命令>
```
`if 條件:` ,“如果條件**成立 Ture**的話”,就執行`:` 后面的代碼;“如果條件**不成立 False**的話”,就跳過`:` 后面的代碼。
一般情況下,`if` 語句帶的條件如下圖所示:

下面這個例子,`if`語句所帶的條件是`1==1`(1等于1),返回`True`,所以會執行`:`后面的命令(打印" You are right!")。
```
>>> if 1==1: # “如果 1 等于 1 的話”
print( " You are right!") # 打印 " You are right!"
You are right!
```
下面這個例子,`if`語句所帶的條件是`1!=1`(1不等于1),返回`False`,所以不會執行`:`后面的命令。
```
>>> if 1!=1: # “如果 1 不等于 1 的話”
print( " You are right!") # 因為“1 不等于 1”是錯誤的,所以print( " You are right!")不會被執行
```
#### 一個畫圖的例子
```
# IfSpiral_5_1.py
answer = input("你想畫圖嗎? y/n:")
if answer == 'y':
print("Working...")
import turtle
t = turtle.Pen()
t.width(2)
for x in range(100):
t.forward(x*2)
t.left(89)
print("Ok,我們畫完了!")
```
#### 我可以駕駛車輛嗎?
```
# OldEnough_5_2.py
driving_age = eval(input("你們當地的法定駕駛年齡是多大?"))
your_age = eval(input("你多大了? "))
if your_age >= driving_age:
print("你可以駕車!")
if your_age < driving_age:
print("對不起,你還得等", driving_age - your_age, "年才可以駕車!")
```
### `ELSE` 語句
可以給`if`添加一個`else`語句。如果`if`判斷是`False`,不要執行`if`語句`:`后面的命令1,去把`else`語句`:`后面的命令2執行了。
```
if <條件>:
<如果條件成立,執行命令1>
else:
<如果條件不成立,執行命令2>
```
#### 我可以駕駛車輛嗎?(改進版)
```
# OldEnoughElse_5_3.py
driving_age = eval(input("你們當地的法定駕駛年齡是多大?"))
your_age = eval(input("你多大了? "))
if your_age >= driving_age:
print("你可以駕車!")
else:
print("對不起,你還得等", driving_age - your_age, "年才可以駕車!")
```
### `ELIF` 語句
如果有多個判斷條件,可以使用多個`elif`:
```
if <條件1>:
<如果條件1成立,執行命令1>
elif <條件2>:
<如果條件2成立,執行命令2>
elif <條件3>:
<如果條件3成立,執行命令3>
else:
<如果以上條件都不成立,執行命令4>
```
#### 數學考試評級
```
# WhatsMyGrade_5_4.py
grade = eval(input("這次你數學考了多少分 (0-100): "))
if grade >= 90:
print("很不錯哦,你得了一個 A! :) ")
elif grade >= 80:
print("你得了一個 B!")
elif grade >= 70:
print("你得了一個 C.")
elif grade >= 60:
print("你得了一個 D...")
else:
print("你慘了,你得了一個 F. :( ")
```
### 復雜條件判斷:`AND` `OR` `NOT`

#### 天氣如何,要不要添衣?
```
# WhatToWear_5_5.py
rainy = input("天氣如何?下雨了嗎? (y/n)").lower()
cold = input("外面冷不冷? (y/n)").lower()
if (rainy == 'y' and cold == 'y'):
print("你最好穿件雨衣。")
elif (rainy == 'y' and cold != 'y'):
print("帶把傘吧。")
elif (rainy != 'y' and cold == 'y'):
print("穿件外套吧,外邊很冷!")
elif (rainy != 'y' and cold != 'y'):
print("天氣這么好,穿什么你鐘意咯!")
```
### 課程小結
1. `IF` 語句
2. `ELSE` 語句
3. `ELIF` 語句
4. 復雜條件判斷
### 課程回顧
昨天上課時有個小朋友問了一個很好的問題:
數學考試評級如果輸入大于100的數字,程序也可以執行,這是不對的,程序應該拒絕執行。
這個問題的解決辦法是在程序的輸入得分的后面,加上一個`while`語句。
```
grade = eval(input("這次你數學考了多少分 (0-100): "))
while grade > 100: #加了while控制,就不能輸入大于100的數字
print("這是不可能的!")
grade = eval(input("請重新輸入你的考試得分 (0-100): "))
if grade >= 90:
print("很不錯哦,你得了一個 A! :) ")
elif grade >= 80:
print("你得了一個 B!")
elif grade >= 70:
print("你得了一個 C.")
elif grade >= 60:
print("你得了一個 D...")
else:
print("你慘了,你得了一個 F. :( ")
```