# 迴圈
## for 迴圈
- for 迴圈通常用於遍歷序列(如 list、tuple、字串等)中的每個元素
- Python 的 for 是直接接受一個 list,來一個一個取出來進行處理
- 
## range函數
- 他是一個等差數據 `range(start, stop, step)`
```python
n = 10
for number in range(n): # for迴圈
print("*",end="") # 列印星號
```
```python
n = 10
sum_ = 0 # sum是內建函數, 不適合當作變數, 所以加上 _
for num in range(1,n+1):
sum_ += num
print("總和 = ", sum_)
# 總和 = 55
```
```python=
for num in range(1,10,2):
print(num)
# 1
# 3
# 5
# 7
# 9
```
## `break` 和 `continue`
- `break` 和 `continue` 是用於控制循環流程的關鍵字。
- `break` 用於立即退出整個循環。
- `continue` 用於跳過本次循環,進入下一次循環。
```python
# 使用 break
for i in range(5):
if i == 3:
break
print(i) # 輸出: 0 1 2
# 使用 continue
for i in range(5):
if i == 3:
continue
print(i) # 輸出: 0 1 2 4
```
## while 迴圈
- while 迴圈則根據一個條件來重複執行程式碼。

```python
count = 0
while count < 5:
print(count)
count += 1
# 0
# 1
# 2
# 3
# 4
```
## `pass`
- `pass` 是 Python 中的一個空語句,它什麼也不做。
## 迴圈的相關函數(enumerate())
- zip():用於將多個序列打包成一個個元組。-
- enumerate()` 函數用於在遍歷序列時獲取元素的索引和值。
# 陣列(list)
## list的特性
- 可以儲存多個資料
- 屬於序列結構
- 值是可變的(Modifiable)
## 基本list輸出
## 串列索引與切片
```python=
arr = ["助教", "丁丁","迪西", "拉拉", "小波"]
# 索引
print(arr[0])
print(arr[1])
print(arr[-1])
# 切片
print(arr[0:3])
print(arr[1:4])
```
## 串列相加與相乘
```python=
# 串列相加
arr1 = ["拉拉", "小波"]
arr2 = ["助教", "丁丁"]
arr1 += arr2
print(arr1) # ['拉拉', '小波', '助教', '丁丁']
# 串列相乘
arr = ["助教", "丁丁","迪西", "拉拉", "小波"]
print(arr*3)
# ['助教', '丁丁', '迪西', '拉拉', '小波', '助教', '丁丁', '迪西', '拉拉', '小波', '助教', '丁丁', '迪西', '拉拉', '小波']
# 串列乘以數字
nums = [1, 3, 5]
numslist = nums * 5
print(numslist)
# [1, 3, 5, 1, 3, 5, 1, 3, 5, 1, 3, 5, 1, 3, 5]
```
- 判斷串列為空
- 找出串列位置
- 尋找第一次出現的位置。
- 陣列元素
## 串列其他函數
因為...實在太多了拉(奪門而出
就...請同學幫幫忙,花個時間看一下
- len()
- indexing
- count()
- set()
- insert()
- remove()
- clear()
- reverse()
- append()
- pop()
- copy()
額外的一些函數:
- lower(), upper()
- title(),
- rstrip(), lstrip(), strip()
- center(), rjust(), ljust()
- startwith(), endwith()
- replace()
參考教學:
- https://www.youtube.com/watch?v=0yySumZTxJ0
- https://www.youtube.com/watch?v=orCsnSHc8Mo
```python=
arr = [23, 19, 22, 31, 18]
games = len(arr) # 獲得場次數據
print(f"經過 {games} 場比賽最高得分 = {max(arr)}")
print(f"經過 {games} 場比賽最低得分 = {min(arr)}")
print(f"經過 {games} 場比賽得分總計 = {sum(arr)}")
```
## 新增元素(append, insert)
- 增加串列元素
- 插入串列元素
## 刪除元素(del, pop)
- 使用索引刪除元素
- 刪除全部元素
- 使用值刪除元素
## 元素排序
- sort(): 直接改變陣列
- sorted(): 反之,未改變原本陣列
## 二維陣列

```python=
sc = [['同學一', 80, 95, 88, 0],
['同學二', 98, 97, 96, 0],
]
sc[0][4] = sum(sc[0][1:4])
sc[1][4] = sum(sc[1][1:4])
print(sc[0]) # ['同學一', 80, 95, 88, 263]
print(sc[1]) # ['同學二', 98, 97, 96, 291]
```
# 元組
## 定義tuple
* Tuple是一種不可變的有序集合,
* len()
* indexing
* count()
* set()
## 基本用法
```python=
arr = ("助教", "丁丁","迪西", "拉拉", "小波")
print(type(arr)) # <class 'tuple'>
```
## 遍歷所有元素
```python
arr = ('magic', 'xaab', 9099) # 定義元組元素是字串與數字
for i in arr:
print(i)
```
## list與tuple互換
```python
arr_tuple = ["助教", "丁丁","迪西", "拉拉", "小波"]
arr = list(arr_tuple)
arr.append("成龍")
print(arr)
# ['助教', '丁丁', '迪西', '拉拉', '小波', '成龍']
```
## 讀取tuple
```python
arr = ("助教", "丁丁","迪西", "拉拉", "小波")
print(arr[0]) # 助教
```
## tuple切片
```python
arr = ("助教", "丁丁","迪西", "拉拉", "小波")
print(arr[1:3]) # ('丁丁', '迪西')
print(arr[:2]) # ('助教', '丁丁')
print(arr[1:]) # ('丁丁', '迪西', '拉拉', '小波')
print(arr[-2:]) # ('拉拉', '小波')
print(arr[0:5:2]) # ('助教', '迪西', '小波')
```
## tuple解包與打包
Lab04作業題目
- 繳交方式 :請到https://140.116.179.59:8080完成作業題目,並將程式碼加上註解(你的理解),很重要,否則助教有權利扣你分數
- 禁止抄襲,否則助教會來查水表
- 題目為基本題6題+一題加分題,共7題
- Lab04_01至Lab04_05,一題16分 ==(不符規定九折,未註解七折,遲交六折)==
- Lab04_06,一題20分 ==(不符規定九折,未註解七折,遲交六折)==
- 加分題直接列入期末成績計算
- github檔名格式:
- 每一個檔案為:Lab04_OO.py
- 所有檔案放入資料夾學號_Lab04在將資料夾上傳