---
# System prepended metadata

title: Python 流程控制
tags: [python]

---

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