DAY 12
0

## 流程控制

``````rain_prob = 90    # 表示下雨機率

if rain_prob > 80:
print("出門要帶傘!")
``````

``````rain_prob = 70

if rain_prob > 80:
print("出門要帶傘!")
else:
print("不用帶傘了~")
``````

``````rain_prob = 90
drive = True

if rain_prob > 80 and not drive:
print("出門要帶傘!")
else:
print("不用帶傘了~")
``````

• `and`，連接兩個布林值，如果兩個布林值都是True，and後的結果才是True，否則就是False。
• `not`，將布林值反轉，簡單講就是True變成False，False變成True。

• `or`，連接兩個布林值，如果兩個布林值其中一個為True，or後的結果就是True，否則為False。

Python的`and``or``not`已經算非常直白易懂了，作為比較，在C語言中會對應成`&&``||``!`

``````rain_prob = 70

if rain_prob > 80:
print("出門要帶傘!")
else:
if rain_prob > 60:
print("帶個帽子就好")
else:
print("都不用帶~")
``````

``````rain_prob = 70

if rain_prob > 80:
print("出門要帶傘!")
elif rain_prob > 60:
print("帶個帽子就好")
else:
print("都不用帶~")

``````

`elif`else if 的縮寫，中文意思上有點 "要不然..." 的含意，也就是上方條件如果不符合時，才會檢查這個條件，如果全部條件都不符合，則執行else中的程式。

## 迴圈

### for迴圈

``````for i in range(1, 11):
print("i =", i)
``````

``````i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
``````

``````mylist = ["A", "B", "C", "D", "E"]

for elem in mylist:
print(elem)
``````

``````A
B
C
D
E
``````

``````for i in range(1, 10):
for j in range(1, 10):
print("{} * {} = {:2d}, ".format(i, j, i*j), end="")
print()
``````

``````1 * 1 =  1, 1 * 2 =  2, 1 * 3 =  3, 1 * 4 =  4, 1 * 5 =  5, 1 * 6 =  6, 1 * 7 =  7, 1 * 8 =  8, 1 * 9 =  9,
2 * 1 =  2, 2 * 2 =  4, 2 * 3 =  6, 2 * 4 =  8, 2 * 5 = 10, 2 * 6 = 12, 2 * 7 = 14, 2 * 8 = 16, 2 * 9 = 18,
3 * 1 =  3, 3 * 2 =  6, 3 * 3 =  9, 3 * 4 = 12, 3 * 5 = 15, 3 * 6 = 18, 3 * 7 = 21, 3 * 8 = 24, 3 * 9 = 27,
4 * 1 =  4, 4 * 2 =  8, 4 * 3 = 12, 4 * 4 = 16, 4 * 5 = 20, 4 * 6 = 24, 4 * 7 = 28, 4 * 8 = 32, 4 * 9 = 36,
5 * 1 =  5, 5 * 2 = 10, 5 * 3 = 15, 5 * 4 = 20, 5 * 5 = 25, 5 * 6 = 30, 5 * 7 = 35, 5 * 8 = 40, 5 * 9 = 45,
6 * 1 =  6, 6 * 2 = 12, 6 * 3 = 18, 6 * 4 = 24, 6 * 5 = 30, 6 * 6 = 36, 6 * 7 = 42, 6 * 8 = 48, 6 * 9 = 54,
7 * 1 =  7, 7 * 2 = 14, 7 * 3 = 21, 7 * 4 = 28, 7 * 5 = 35, 7 * 6 = 42, 7 * 7 = 49, 7 * 8 = 56, 7 * 9 = 63,
8 * 1 =  8, 8 * 2 = 16, 8 * 3 = 24, 8 * 4 = 32, 8 * 5 = 40, 8 * 6 = 48, 8 * 7 = 56, 8 * 8 = 64, 8 * 9 = 72,
9 * 1 =  9, 9 * 2 = 18, 9 * 3 = 27, 9 * 4 = 36, 9 * 5 = 45, 9 * 6 = 54, 9 * 7 = 63, 9 * 8 = 72, 9 * 9 = 81,
``````

### while迴圈

while迴圈和for迴圈不同點在於，while迴圈沒有給定一個明確的範圍。while迴圈會一直執行直到條件變為False或遇到break。

``````i = 1
while i < 11:
print("i =", i)
i += 1
``````

i一開始是1，所以`i < 11`這個條件是True，因此迴圈會執行print()和i+=1，但是執行到第10次時，i+=1後i就變11了，就不滿足`i < 11`了阿，所以就會跳出迴圈，結束程式。

``````i = 1
while True:
if i > 10:
break
print("i =", i)
i += 1
``````