### 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]