# 重複結構
###### tags: `Python`
## While 迴圈
當某條件成立時,就做某件事,直到不成立為止。
```python=
while (條件):
要做的事情
```
## 範例:身份驗證
```python=
password = '123456789'
word = input('第1次輸入,請輸入密碼:')
num = 2
while (password != word and num != 5):
word = input(f'密碼錯誤,第{num}次輸入,請再次輸入密碼:')
num += 1 ;
if password == word :
print('密碼正確')
else :
print('帳號已上鎖')
```
## For 迴圈
`for`迴圈分為兩種用法,一種是`指定次數`;另一種是`迭代`
```python=
for 變數 in range(初始值, 結束值, 間隔值):
要做的事情
```
通常變數會是新宣告的,常用的代號有`i`, `j` ;當單純指定次數時則可用`for _ in range(初始值, 結束值, 間隔值):`
### 指定次數
指定次數:
```python=
for i in range(10):
print(i)
```
指定範圍:
```python=
for i in range(2, 10):
print(i)
```
指定間隔:
```python=
for i in range(2, 10, 2):
print(i)
```
### 範例:計算連續相加
```python=
num = 0
num1 = eval(input('請輸入起始數字'))
num2 = eval(input('請輸入結束數字'))
for i in range (num1, num2+1):
num += i
print(f'答案為{num}')
```
由於在`num1`=`num2`時迴圈就會終止,不會進行到`num += i`,所以後面的終止值需要`+1`
### 迭代
使用串列來執行迭代
```python=
nameList = ['Hank', 'Harry', 'John']
for name in shoppingList:
print("I am %s." % (name))
```
### `enumerate()`
使用迭代也想要有編號的時候,可以用 `enumerate()`
```python=
nameList = ['Hank', 'Harry', 'John']
for num, name in enumerate(nameList):
print(f'第{num+1}項要買的東西是{name}。')
```