## wk07_1019_串列與元組 1. list - 特性 - 宣告 - 讀取 - APU 2. tuple 5.1 串列的使用 -串列內可以不同形態 5.2 使用 for迴圈讀取串列 5.3 串列搜尋與計次 5.4 串列元素新增與刪除 5.5 串列排序 5.6 串列常用的方法列表 5.7 元組(Tuple) ### 【inclass practice】 #### {綜合演練} 實作2 輸入喜歡的水果,直到Enter鍵結束,找尋fruit = ["香蕉","蘋果","橘子","鳳梨","西瓜"]水果串列是否包含此水果,並顯示該水果是串列中的第幾項 實作6 西元2021年是牛年。請你開發一個程式: 當使用者輸入他的出生西元年之後,畫面會顯示這個西元年的生肖。 #### {範例} 1. 串列初值設定 \<list1> 2. 使用 for 迴圈讀取串列元素 \<list2> 3. 利用迴圈配合索引讀取串列元素 \<list3> 4. 以串列計算班級成績 \<append1> 5. 刪除指定串列元素 \<remove> 6. 成績由大到小排序 \<sorted> #### 【概念複習】 ```python #串列初值設定 \<list1> list1 = [] list2 = ['香蕉','蘋果','柳丁'] list3 = [['美國','日本','韓國'],['排球','羽球','游泳']] print(list1) print(list2) print(list3) ``` [] ['香蕉', '蘋果', '柳丁'] [['美國', '日本', '韓國'], ['排球', '羽球', '游泳']] ```python fruits = ['香蕉','蘋果','柳丁'] fruits[0:3] ``` ['香蕉', '蘋果', '柳丁'] ```python fruits.append("櫻桃") fruits.append("葡萄") print(fruits) ``` ['香蕉', '蘋果', '柳丁', '櫻桃', '葡萄'] ```python fruits.insert(9,"西瓜") fruits.insert(2,"西瓜") #插入索引值為(_,) print(fruits) ``` ['香蕉', '蘋果', '西瓜', '柳丁', '櫻桃', '葡萄', '西瓜'] ```python fruits.pop() #把最後一個元素去掉 print(fruits) ``` ['香蕉', '蘋果', '西瓜', '柳丁', '櫻桃', '葡萄'] ```python fruits.pop(0) #把第一個去掉 print(fruits) #(1)第二個去掉 ``` ['蘋果', '西瓜', '柳丁', '櫻桃', '葡萄'] ```python fruits.remove("櫻桃") ``` ```python print(fruits) ``` ['蘋果', '西瓜', '柳丁', '葡萄'] ```python #取代 fruits[0] = "火龍果" print(fruits) ``` ['火龍果', '西瓜', '柳丁', '葡萄'] ```python #使用 for 迴圈讀取串列元素 \<list2> for fruit in fruits : print(fruit) for i in range(4) : print(i) for i in range(4) : print(i,fruits[i]) ``` 火龍果 西瓜 柳丁 葡萄 0 1 2 3 0 火龍果 1 西瓜 2 柳丁 3 葡萄 ```python len(fruits) ``` 4 ```python fruits.index("西瓜") ``` 1 ```python #以串列計算班級成績 <append1> scores = [100,20,90,100,90,30] ttl = 0 avg = 0 n = 0 for score in scores : ttl = ttl + score n = n+1 avg = ttl / n for i in range(len(scores)): print(i,scores[i]) print("總分 %d, 平均 %6.2f" % (ttl,avg)) ``` 0 100 1 20 2 90 3 100 4 90 5 30 總分 430, 平均 71.67 ```python scores = [] in_score = 0 while in_score != -1 : in_score = int(input("please enter score :")) if in_score != -1 : scores.append(in_score) print(scores) ``` please enter score :80 please enter score :50 please enter score :2 please enter score :-1 [80, 50, 2] ```python #刪除指定串列元素 \<remove> fruits = ["香蕉","蘋果","橘子","鳳梨","西瓜"] print(fruits) del_fruit = input("please enter the fruit to delete") if fruits.count(del_fruit) == 0 : print("查無此水果") else: fruits.remove(del_fruit) print("我已經完成刪除") print(fruits) ``` ['香蕉', '蘋果', '橘子', '鳳梨', '西瓜'] please enter the fruit to delete香蕉 我已經完成刪除 ['蘋果', '橘子', '鳳梨', '西瓜'] ```python #實作2:輸入喜歡的水果,直到Enter鍵結束, #找尋fruits = ["香蕉","蘋果","橘子","鳳梨","西瓜"]水果串列是否包含此水果,並顯示該水果是串列中的第幾項 fruits = ["香蕉","蘋果","橘子","鳳梨","西瓜"] del_fruit = "蘋果" print("我已機完成刪除") print("查無此水果") print(fruits) ``` 我已機完成刪除 查無此水果 ['香蕉', '蘋果', '橘子', '鳳梨', '西瓜'] ### 【afterclass practice】 - 綜合演練 選擇題1-10 (需抄題在markdown cell ; 有程式碼的題目要有code cell ) - 教學影音 lesson 8 1. 執行下列程式,下列結果何者正確? (B) ``` list1 = [1, 2, 3, 4, 5] print(list1[0]) (A) 0 (B) 1 (C) 2 (D) [1, 2, 3, 4,5] ``` 2. 執行下列程式,下列結果何者正確? (A) ``` list4 = ["香蕉", "蘋果", "橘子"] print(list4[-3]) (A) 香蕉 (B) 蘋果 (C) 橘子 (D) 錯誤,索引值超過範圍 ``` 3. 執行下列程式,n 的值為多少? (D) ``` scores = [85, 79, 93] n=len(scores) (A) 0 (B) 1 (C) 2 (D)3 ``` 4. 執行下列程式,n 的值為多少? (B) ``` list1 = ["香蕉","蘋果","橘子"] n = list1.index("蘋果") (A) 0 (B) 1 (C) 2 (D)3 ``` 5. 執行下列程式,下列結果何者正確? (A) ``` list1 = ["香蕉","蘋果","橘子"] n = list1.count("西瓜") (A) n=0 (B) n=1 (C) n=2 (D) 出現錯誤 ``` 6. 執行下列程式,下列結果何者正確? (D) ``` 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 ``` 7. 執行下列程式,下列顯示結果何者正確? (C) ``` list1 = [1,2,3,4,5,6] list1.insert(-1, "愛") list1.insert(12, "台灣") print(list1[5]) (A) -1 (B) 12 (C) 愛 (D)台灣 ``` 8. 執行下列程式,下列顯示結果何者正確? (C) ``` 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] ``` 9. 執行下列程式,下列顯示結果何者正確? (D) ``` 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] ``` 10. 執行下列程式,下列顯示結果何者正確? (C) ``` 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] ``` ```python #(1) list1 = [1, 2, 3, 4, 5] print("1:",list1[0]) #(2) list4 = ["香蕉", "蘋果", "橘子"] print("2:",list4[-3]) #(3) scores = [85, 79, 93] n3=len(scores) print("3:",n3) #(4) n4 = list4.index("蘋果") print("4:",n4) #(5) n5 = list1.count("西瓜") print("5:",n5) #(6) list11 = [1,2,3,4,5,6] m6 = list11.pop() n6 = list11.pop(2) print("6:",m6,n6) #(7) list7 = [1,2,3,4,5,6] list7.insert(-1, "愛") list7.insert(12, "台灣") print("7:",list7[5]) #(8) list8 = [1,2,3,4,5,6] del list8[1] print("8:",list8) #(9) list9=[3,2,1,5] list9.reverse() print("9:",list9) #(10) list10=[3,2,1,5] list100=sorted(list10,reverse=False) list101=sorted(list10,reverse=True) print("10:",list100) print("10:",list101) ``` 1: 1 2: 香蕉 3: 3 4: 1 5: 0 6: 6 3 7: 愛 8: [1, 3, 4, 5, 6] 9: [5, 1, 2, 3] 10: [1, 2, 3, 5] 10: [5, 3, 2, 1] ```python ``` ```python ```