### wk07_1019_串列與元組
##### Ch05_串列與元組
<pre>
5.1 串列的使用
5.2 使用 for迴圈讀取串列
5.3 串列搜尋與計次
5.4 串列元素新增與刪除
5.5 串列排序
5.6 串列常用的方法列表
5.7 元組(Tuple) </pre>
#### 【inclass practice】
```python
list1 = []
list2 = ["apple", "banana", "peach"]
list3 = [["Cesko","Japan","Switzerland"], ["籃球","羽球","足球"]]
print(list1)
print(list2)
print(list3)
```
[]
['apple', 'banana', 'peach']
[['Cesko', 'Japan', 'Switzerland'], ['籃球', '羽球', '足球']]
```python
print("The country I most wanna visit %s" % list3[0][0])
```
The country I most wanna visit Cesko
```python
print(list2[0:2:1])
```
['apple', 'banana']
```python
list2.append("banana")
print(list2)
```
['apple', 'banana', 'peach', 'banana']
```python
list2.pop()
```
'banana'
```python
list2.pop(0)
```
'apple'
```python
print(list2)
```
['banana', 'peach']
```python
list2[1] = "watermelon"
print(list2)
```
['banana', 'watermelon']
```python
list2.insert(0, "apple")
print(list2)
```
['apple', 'banana', 'watermelon']
```python
print(list2)
```
['apple', 'banana', 'watermelon']
```python
list2.reverse()
print(list2)
```
['watermelon', 'banana', 'apple']
## {綜合演練}
###### 實作2
<pre>
輸入喜歡的水果,直到Enter鍵結束,找尋fruit = ["香蕉","蘋果","橘子","鳳梨","西瓜"]水果串列是否包含此水果,
並顯示該水果是串列中的第幾項。</pre>
```python
fruits = ["香蕉","蘋果","橘子","鳳梨","西瓜"]
while True:
fruit = input("請輸入喜歡的水果(Enter 結束):")
if (fruit==""):
break
n = fruits.count(fruit)
if (n>0): # 串列元素存在
p=fruits.index(fruit)
print("%s 在串列中的第 %d 項" %(fruit,p+1))
else:
print(fruit,"不在串列中!")
```
請輸入喜歡的水果(Enter 結束):西瓜
西瓜 在串列中的第 5 項
請輸入喜歡的水果(Enter 結束):
###### 實作6
<pre>
西元2021年是牛年。請你開發一個程式:
當使用者輸入他的出生西元年之後,畫面會顯示這個西元年的生肖。</pre>
```python
animals = "鼠牛虎免龍蛇馬羊猴雞狗豬"
year = int(input("請輸入你的出生西元年:"))
print("西元{}年出生屬{}".format(year, animals[(year-2020) % 12]))
```
請輸入你的出生西元年:2002
西元2002年出生屬馬
###### {範例}
1. 串列出值設定 \<list1>
2. 使用 for 迴圈讀取串列元素 \<list2>
3. 利用迴圈配合索引讀取串列元素 \<list3>
4. 以串列計算班級成績 \<append1>
5. 刪除指定串列元素 \<remove>
6. 成績由大到小排序 \<sorted>
```python
list4 = [100, 89, 79]
print(max(list4))
print(min(list4))
print(len(list4))
print(list4.count(79))
print(list4.index(79))
```
100
79
3
1
2
```python
#使用 for 迴圈讀取串列元素 <list2>
print(list4)
for n in list4 :
print(n * 3, end = ' ')
```
[100, 89, 79]
300 267 237
```python
for i in range(len(list4)) :
print(i, list4[i], sep = ",")
```
0,100
1,89
2,79
```python
list2 = ["apple", "banana", "peach"]
for i in range(len(list4)) :
print(i, list2[i], sep = ",")
```
0,apple
1,banana
2,peach
```python
#4.以串列計算班級成績 <append1>
scores = [100, 90, 50, 70, 100, 100, 90, 90, 60, 30]
ttl = 0
avg = 0
n = 0
for score in scores :
ttl = ttl + score
n = n + 1
avg = ttl/n
print("總成績 : %3.0f , 平均成績 : %5.2f" % (ttl, avg))
```
總成績 : 780 , 平均成績 : 78.00
```python
scores =[]
inscore = 0
while inscore != -1 :
inscore = int(input("enter score, to end just enter -1 and enter"))
if inscore != -1 :
scores.append(inscore)
print(scores)
```
enter score, to end just enter -1 and enter100
enter score, to end just enter -1 and enter100
enter score, to end just enter -1 and enter90
enter score, to end just enter -1 and enter90
enter score, to end just enter -1 and enter80
enter score, to end just enter -1 and enter-1
[100, 100, 90, 90, 80]
```python
#刪除指定串列元素 <remove>
fruits = ["櫻桃","西瓜","香蕉","木瓜","葡萄","酪梨","龍眼"]
to_del = "西瓜"
print(fruits)
```
['櫻桃', '西瓜', '香蕉', '木瓜', '葡萄', '酪梨', '龍眼']
#### 【afterclass practice】
1. 綜合演練 選擇題1-10 (需抄題在markdown cell ; 有程式碼的題目要有code cell )
2. 教學影音 lesson 8
###### 綜合演練
1. 執行下列程式,下列結果何者正確?
<pre>
list1 = [1, 2, 3, 4, 5]
print(list1[0])
(A) 0 (B) 1 (C) 2 (D) [1, 2, 3, 4,5]
Ans:( B )</pre>
2. 執行下列程式,下列結果何者正確?
<pre>
list4 = ["香蕉", "蘋果", "橘子"]
print(list4[-3])
(A) 香蕉 (B) 蘋果 (C) 橘子 (D) 錯誤,索引值超過範圍
Ans:( A ) </pre>
3. 執行下列程式,n 的值為多少?
<pre>
scores = [85, 79, 93]
n=len(scores)
(A) 0 (B) 1 (C) 2 (D)3
Ans:( D )</pre>
4. 執行下列程式,n 的值為多少?
<pre>
list1 = ["香蕉","蘋果","橘子"]
n = list1.index("蘋果")
(A) 0 (B) 1 (C) 2 (D)3
Ans:( B ) </pre>
5. 執行下列程式,下列結果何者正確?
<pre>
list1 = ["香蕉","蘋果","橘子"]
n = list1.count("西瓜")
(A) n=0 (B) n=1 (C) n=2 (D) 出現錯誤
Ans:( A ) </pre>
6. 執行下列程式,下列結果何者正確?
<pre>
list1 = [1,2,3,4,5,6]
m = list1.pop()
n = list1.pop(2)
(A) m=1, n=6 (B) m=2, n=3 (C) m=6, n=2 (D) m=6, n=3
Ans:( D ) </pre>
7. 執行下列程式,下列顯示結果何者正確?
<pre>
list1 = [1,2,3,4,5,6]
list1.insert(-1, "愛")
list1.insert(12, "台灣")
print(list1[5])
(A) -1 (B) 12 (C) 愛 (D)台灣
Ans:( C ) </pre>
8. 執行下列程式,下列顯示結果何者正確?
<pre>
list1 = [1,2,3,4,5,6]
del list1[1]
print(list1)
(A) [1,2,3,4,5,6] (B) [2,3,4,5,6] (C) [1,3,4,5,6]
(D) [1,2,3,4,5]
Ans:( C ) </pre>
9. 執行下列程式,下列顯示結果何者正確?
<pre>
list1=[3,2,1,5]
list1.reverse()
print(list1)
(A) [3,2,1,5] (B) [1,2,3,5] (C) [5,3,2,1] (D) [5,1,2,3]
Ans:( D ) </pre>
10. 執行下列程式,下列顯示結果何者正確?
<pre>
list1=[3,2,1,5]
list2=sorted(list1,reverse=True)
print(list2)
(A) [3,2,1,5] (B) [1,2,3,5] (C) [5,3,2,1] (D) [5,1,2,3]
Ans:( C )</pre>
```python
#1.執行下列程式,下列結果何者正確?
list1 = [1, 2, 3, 4, 5]
print(list1[0])
```
1
```python
#2.執行下列程式,下列結果何者正確?
list4 = ["香蕉", "蘋果", "橘子"]
print(list4[-3])
```
香蕉
```python
#3.執行下列程式,n 的值為多少?
scores = [85, 79, 93]
n=len(scores)
print(n)
```
3
```python
#4.執行下列程式,n 的值為多少?
list1 = ["香蕉","蘋果","橘子"]
n = list1.index("蘋果")
print(n)
```
1
```python
#5.執行下列程式,下列結果何者正確?
list1 = ["香蕉","蘋果","橘子"]
n = list1.count("西瓜")
print(n)
```
0
```python
#6.執行下列程式,下列結果何者正確?
list1 = [1,2,3,4,5,6]
m = list1.pop()
n = list1.pop(2)
print("m =",m, "n =",n)
```
m = 6 n = 3
```python
#7.執行下列程式,下列顯示結果何者正確?
list1 = [1,2,3,4,5,6]
list1.insert(-1, "愛")
list1.insert(12, "台灣")
print(list1[5])
```
愛
```python
#8.執行下列程式,下列顯示結果何者正確?
list1 = [1,2,3,4,5,6]
del list1[1]
print(list1)
```
[1, 3, 4, 5, 6]
```python
#9.執行下列程式,下列顯示結果何者正確?
list1=[3,2,1,5]
list1.reverse()
print(list1)
```
[5, 1, 2, 3]
```python
#10.執行下列程式,下列顯示結果何者正確?
list1=[3,2,1,5]
list2=sorted(list1,reverse=True)
print(list2)
```
[5, 3, 2, 1]