# 程式設計(第24組) 14/03/2022
組長:黃凱葶 110251039 管院學士班學士班1年級
組員:林世鎧 110211052 經濟系學士班1年級
組員:周芃君 110211008 經濟系學士班1年級
組員:蘇家陞 110211033 經濟系學士班1年級
---
## [Python列表 (Python Lists)](https://www.w3schools.com/python/python_lists.asp)
* Python 編程語言中有四種集合數據類型:
> `List`是一個有序、可變的集合。允許重複元素。
> `Tuple`是一個有序、不可變的集合。允許重複元素。
> `Set`是一個無序、不可變、無索引的集合。不允許重複元素。
> `Dictionary`是一個有序、可變的集合。不允許重複元素。
* 列表用於將多個元素存儲在單個變量中。
* 列表由方括號`[]`創建
* 搜索列表項時,第一項的編號為`0`,第二項的編號為`1`,以此類推。
* 負數編號意味著從列表末端開始,倒數第一項的編號為`-1`,倒數第二項的編號為`-2`,以此類推。
---
### [Python - 訪問列表項 (Access List Items)](https://www.w3schools.com/python/python_lists_access.asp)
* 切片:取得特定範圍的元素。如`[3:6]`,將搜索編號3~5的所有元素
> (如`[:6]`),將搜索最前項~編號5的所有元素
> (如`[3:]`),將搜索編號3~最末項的所有元素
* 新增 `lst.append()`
* 刪除 `lst.remove()`
* 清空 `lst.clear()`
* 排序 `lst.sort()`
* 總和 `sum()`
* 項數 `len()`
* 最大值 `max()`
* 最小值 `min()`
* 查找元素 `if "__" in`
* 範例:查找`Hanoi`有無出現於列表中
```
thislist = ["Beijing", "Hanoi", "Hong Kong", "Macau", "Seoul", "Taipei", "Tokyo", "Ulaanbaatar"]
if "Hanoi" in thislist:
print("Yes, 'Hanoi' is in the cities list")
```
---
Ex1:
```
lst = ["a","b","c","d","e"]
lst[2] = "x" #將列表編號2的元素設為"x"
lst.append("c") #於列表最後附加"c"
lst.remove("b") #移除列表第一個"b"
print(lst)
⇒
['a', 'x', 'd', 'e', 'c']
```
Ex2:
```
lst = ["a","b","c","d","e"]
for i in lst: #針對lst中的每個元素i(即用i代表每個元素)
print(i)
⇒
a
b
c
d
e
```
---
## [Python for迴圈 (Python For Loops)](https://www.w3schools.com/python/python_for_loops.asp)
* for迴圈:`for x in ___:`
* for迴圈的內容需要縮排
* 利用for迴圈,我們將可以針對`List`、`Tuple`、`Set`等集合數據中的每個項目各執行一次。
* 除集合數據外,字符串同樣也是for迴圈的運用對象。
* 範例:走訪字符串中的字符
```
for x in "Ryukyu":
print(x) #記得要縮排!
⇒
R #大小寫照舊
y
u
k
y
u
```
---
### 休息指令 (The break Statement)
若要停止for迴圈,使用`break`語句,即可在for迴圈走訪所有元素之前停止。
範例:在`x`為`"Euro"`時結束迴圈
```
currencies = ["Dollar", "Euro", "Yen", "Pound"]
for x in currencies:
print(x)
if x == "Euro":
break
```
---
### 繼續指令 (The continue Statement)
使用`continue`語句,可以直接結束for迴圈的當前走訪,並繼續下一個。
範例:不要印出`"Euro"`
```
currencies = ["Dollar", "Euro", "Yen", "Pound"]
for x in currencies:
if x == "Euro":
continue
print(x)
```
---
### 範圍函數 (The `range()` Function)
* 於`range()`函數框內輸入第一個參數,將獲得一個數字序列,起始值為0,遞增值為1,並以指定的參數結束。
* `range()`函數一般默認起始值為0,但是可以通過添加第二個參數來指定起始值
* `range()`函數一般默認遞增值為1,但是可以通過添加第三個參數來指定遞增值
範例:
```
for x in range(2, 23, 3):
print(x)
```
---
### for迴圈中的Else (Else in For Loop)
`Else`可置於for迴圈之下,用於指定for迴圈結束後欲執行的指令。
範例:
```
for x in range(4, 9):
print(x)
else:
print("Finally finished!")
```
---
### 鑲嵌迴圈 (Nested Loops)
可在for迴圈裡嵌入另一個for迴圈,此時“內迴圈”將在“外迴圈”的每次走訪中執行一次。
範例:
```
adj = ["brown", "fragrant"]
food = ["coffee", "toffee"]
for x in adj:
for y in food:
print(x, y)
```
---
### 跳過指令 (The pass Statement)
因為for迴圈的內容不能為空白,所以遇到空白內容的for迴圈時,放入`pass`語句以避免出錯。
範例:
```
for x in [0, 1, 2]:
pass
```
---
Ex3:
```
#找出串中大於90000的元素
#換句話說,我需要去走訪串列
#換句話說,我需要:針對串列lst的每個元素x,找出大於90000的所有元素
lst = [60474,17966,96949,7521,93184,13290,80559,23407,32934,71592,53071]
for x in lst:
if x > 0 and x < 40000:
print("第一組")
print(x)
elif x >40000 and x < 80000:
print("第二組")
print(x)
elif x > 80000:
print("第三組")
print(x)
```
Ex4:
```
a = [1,3,2,5,4]
b = 0 #總和
for x in a:
print( "x=" )
print(x)
b = +b+x
print( "b=" )
print(b)
print( "----------" )
print(b)
```
---
開會記錄:
日期:2022年3月16日
開始時間:晚上9:00
結束時間:晚上9:50
内容:用for迴圈算出lst串列的總和,最大的值

---
## 作業:
用for迴圈算出lst串列的總和
用for迴圈找出lst串列中最大的值
解答:
[](https://i.imgur.com/92X8jNK.png)
---