# Python 流程控制
###### tags: `python`
(注意縮排 tab)
## 判斷式
### if
```python=
if 布林值1 :
若布林值1為True,則執行命令
elif 布林值2:
若布林值2為True,則執行命令
else :
若布林值1,2為False,執行命令
```
範例
```python=
x = input("input a number:")#基本輸入為字串型態
x = int(x) #轉換為整數型態
if x>200:
print("larger than 200")
elif x>100:
print("between 100 and 200")
else:
print("smaller than 100")
```
> input a number: 150
> between 100 and 200
## 迴圈 while、for
### while
```python=
while 布林值:
若布林值為True,執行命令
回到上方,做下一次的迴圈判斷
```
範例
```python=
n=1
sum = 0 #紀錄累加結果
while n<5:
print("variable n is : ",n)
sum+=n
n+=1
print("sum:",sum)
```
>variable n is : 1
variable n is : 2
variable n is : 3
variable n is : 4
sum:10
無限循環
```python=
n=1
while True:
print(n)
n+=1
```
### for
```python=
for 變數名稱 in 列表或字串
將列表中的項目或字串中的字元逐一取出,逐一處理
```
範例
```python=
for x in [4,1,2]:
print("data: ",x)
for c in "Hel":
print("data: ",c)
```
> data: 4
> data: 1
> data: 2
> data: H
> data: e
> data: l
#### range() 製造連續數字列表
沒有定義開頭(從0開始到range內數字-1)
>for 變數名稱 in range(3):
相當於
for 變數名稱 in [0,1,2]:
有定義開頭、結尾
>for 變數名稱 in range(3,6):
>相當於
>for 變數名稱 in [3,4,5]:
### 迴圈進階指令 break、continue 寫在迴圈內) (else寫在迴圈外)
#### break 強制結束迴圈
```python=
while 布林值:
break
for 變數名稱 in 列表或字串
break
```
範例
```python=
n=1
while n<5:
if n==3: #等於3時 強制結束整個迴圈
break
n+=1
print(n)
```
>3
#### continue 強制進入下一圈 忽略符合條件的下方程式
```python=
while 布林值:
continue
for 變數名稱 in 列表或字串
continue
```
範例
```python=
n=0
for x in [0,1,2,3]:
if x%2==0:
continue
n+=1
print("n: ",n)
```
>n: 2
#### else 加在迴圈外,下方, 結束迴圈前執行else內程式
範例
```python=
n=1;
while n<5:
print("var n is :",n)
n+=1
else:
print(n)
```
>var n is : 1
var n is : 2
var n is : 3
var n is : 4
5
```python=
for c in "Hel":
print(c)
else:
print(c)
```
>H
>e
>l
>l
[參考教材](https://www.youtube.com/watch?v=yBXlwOmLqZ4&list=PL-g0fdC5RMboYEyt6QS2iLb_1m7QcgfHk&index=8)