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