<font color=#008000>
>作者: 吳姿瑩
>更新:2022.10.06
</font>[color=#008000]
# Lesson05: Python迴圈(while, for)
###### tags: `運動科學模擬` `多元選修` `Python` `for` `while` `break`
:::danger
下次上課開始要進行vpython,尚未安裝成功同學請盡快解決,避免影響學期成績!
:::
## :memo:while迴圈
在執行程式時,經常會重複性執行動作,可利用while迴圈來簡化程式,最基本簡單的語法為
```
while 條件:
執行程式區塊
```
當條件符合時,則會執行while迴圈中程式區塊,直到條件不符合,則結束迴圈,概念流程圖如下:
```flow
st=>start: while 迴圈開始
e=>end: 結束
cond=>condition: 條件式
op=>operation: 程式區塊
op2=>operation: 迴圈結束
st->cond->op->cond->st
cond(yes@True)->op->cond
cond(no@False,left)->op2
```
- 請利用while迴圈進行 1 + 2 + 3 + ... +10
1. 利用while 迴圈進行數字相加,一開始先進行初始設定,未來要更改設定可直接在開頭更改即可
```javascript!=1
result = 0
i = 0 #初始值
n = 10 #設定範圍
```
2. 進行while 迴圈相加
```javascript!=4
while i <= n :
print("i= ",i)
result += i
i += 1
```
3. 最後顯示出相加結果
```javascript!=8
print("result = ", result)
```
:::spoiler **學生作業**
1. Homework: 請利用while迴圈,進行相加 1 + 3 + 5 + ... 101 = ?
請將==程式code以及結果截圖== 至google classroom繳交作業。
3. 完成今日協作平台更新
4. 將code上傳至雲端硬碟中(Lesson05 Python迴圈while,for )
:::
:::spoiler **while 完整程式碼**
```javascript=
"""
Auther :吳姿瑩
Date :2022/10/07
version :python3.10.6
chapter :python while寫法
"""
"""
1.while 條件
"""
result = 0
i = 0 #初始值
n = 10 #設定範圍
while i <= n :
print("i= ",i)
result += i
i += 1
print("result = ", result)
```
:::
## :memo:while, break迴圈
在做while迴圈時,可以利用==break==強制離開迴圈,使用語法為
```
while True:
執行程式區塊
if 達到完成條件:
break
```
通常會使用==布林值True==來搭配使用,當while迴圈中if條件達成才離開迴圈
- 請利用while迴圈進行 1 + 2 + 3 + ... +10
1. 利用while 迴圈進行數字相加,一開始先進行初始設定,未來要更改設定可直接在開頭更改即可
```javascript!=1
result = 0
i = 0 #初始值
```
2. 進行while 迴圈相加
```javascript!=3
while True:
print("i= ",i)
result += i
i += 1
```
3. 利用if條件break跳離break迴圈(注意空格,需在while迴圈中)
```javascript!=7
if i == 11 :break
```
4. 最後顯示出相加結果
```javascript!=8
print("result = ", result)
```
:::spoiler **學生作業**
1. Homework: 請利用while, break迴圈,進行相加 1 + 3 + 5 + ...(==共加總100次==) = ?
請將==程式code以及結果截圖== 至google classroom繳交作業。
2. 完成今日協作平台更新
3. 將code上傳至雲端硬碟中(Lesson05 Python迴圈while,for )
:::
:::spoiler **while break 完整程式碼**
```javascript=
"""
Auther :吳姿瑩
Date :2022/08/17
version :python3.10.6
chapter :python while寫法
"""
"""
1.while true
"""
result = 0
i = 0 #初始值
while True:
print("i= ",i)
result += i
i += 1
if i == 11 :break
print("result = ", result)
```
:::
## :memo:for迴圈
for迴圈亦是進行重複性程式區塊使用的語法,而和while不同的是,像是從一大筆、一串資料中,依序讀取當中的元素來運算,常會搭配 range 或串列資料一起使用
```flow
st=>start: for 迴圈開始
e=>end: 結束
cond=>condition: 條件式
op=>operation: for 程式區塊
op2=>operation: 迴圈結束
st->cond->op->cond->st
cond(yes@True)->op->cond
cond(no@False,left)->op2
```
```javascript!
for 變數 in range(範圍):
執行程式區塊
```
range是產生數列的函式,語法為
```javascript
range(起始值, 結束值, 增量)
```
起始值預設為0,增量預設為1,故寫range(5),所產生出來的數列為(0, 1, 2, 3, 4)進行程式區塊,注意5並不參與程式區塊執行!
- 請利用for迴圈進行 1 + 2 + 3 + ... +10
```javascript=
result = 0
for i in range(11) :
print("i= ",i)
result += i
i += 1
print("result = ", result)
```
:::spoiler **學生作業**
1. Homework: 請利用for迴圈,進行相加 $1 + \dfrac{1}{2} + \dfrac{1}{3} + ...$(==共加總100次==) = ?
請將==程式code以及結果截圖== 至google classroom繳交作業。
2. 完成今日協作平台更新
3. 將code上傳至雲端硬碟中(Lesson05 Python迴圈while,for )
:::
:::spoiler **for 完整程式碼**
```javascript=
"""
Auther :吳姿瑩
Date :2022/10/07
version :python3.10.6
chapter :python for寫法
"""
"""
1.for 條件
"""
result = 0
for i in range(11) :
print("i= ",i)
result += i
i += 1
print("result = ", result)
```
:::
## :memo:亂數產生
python亂數產生有許多方式,以下選擇最簡潔的方式來寫
```javascript=1
import random
print("亂數:" ,random.randint(-100, 100))
```
:::spoiler **學生作業**
1. Homework:請利用迴圈在==範圍1號至33號==,輸出==5組亂數==
請將==程式code以及結果截圖== 至google classroom繳交作業。
2. 完成今日協作平台更新
3. 將code上傳至雲端硬碟中(Lesson05 Python迴圈while,for )
:::
:::spoiler **學生作業**
1. 請利用這兩週課程(print, if , while, for)寫出一個終極密碼的code!
2. 請將==程式code以及結果截圖== 至google classroom繳交作業。
3. 完成今日協作平台更新
4. 將code上傳至雲端硬碟中(Lesson05 Python迴圈while,for )
:::