# wk08_1026_元組_字典 5.5 串列排序 5.6 串列常用的方法列表 5.7 元組(Tuple) ## [Inclass Practice] 實作6 西元2021年是牛年。請你開發一個程式: 當使用者輸入他的出生西元年之後,畫面會顯示這個西元年的生肖。 ```python 生肖=['鼠','牛','虎','兔','龍','蛇','馬','羊','猴','雞','狗','豬'] x=1966 a=x-2020 b=a%12 print("生肖=",生肖[b]) ``` 生肖= 馬 ```python divmod(a,12) ``` (-5, 6) ```python scores=[21,63,91,20] scores.sort(reverse=False)#小到大 print(scores) ``` [20, 21, 63, 91] ```python scores=[21,63,91,20] scores_sorted=sorted(scores)# print(scores_sorted) ``` [20, 21, 63, 91] ```python scores=[21,63,91,20] scores=sorted(scores) print(scores) ``` [20, 21, 63, 91] 實作2 輸入喜歡的水果,直到Enter鍵結束,找尋fruit = ["香蕉","蘋果","橘子","鳳梨","西瓜"]水果串列是否包含此水果,並顯示該水果是串列中的第幾項 ```python fruits=["香蕉","蘋果","橘子","鳳梨","西瓜"] fruit=input("你喜歡什麼水果?") i=0 if fruits.count(fruit)>0: i=fruits.index(fruit) print("水果串列包含此水果,在第",i+1,"位,索引值",i) else: print("水果串列不包含此水果") ``` 你喜歡什麼水果?橘子 水果串列包含此水果,在第 3 位,索引值 2 ```python # 刪除指定串列元素 \<remove> fruits=["香蕉","蘋果","橘子","鳳梨","西瓜"] fruit=input("你不喜歡什麼水果?") i=0 ``` {補充} list + while 練習 1. 計算總和:編寫一個程式,使用迴圈計算一個整數串列的所有元素的總和。 2. 找出最大值:編寫一個程式,在一個整數串列中查找並返回最大的數字。 3. 偶數過濾:編寫一個程式,接受一個整數串列,然後返回一個只包含偶數的新串列。 4. 反轉串列:編寫一個程式,將一個字元串列反轉,例如,將['a', 'b', 'c']轉換為['c', 'b', 'a']。 5. 查找元素:編寫一個程式,接受一個整數串列和一個目標數字,返回目標數字在串列中的索引,如果它不存在,返回-1。 ```python # 計算總和:編寫一個程式,使用迴圈計算一個整數串列的所有元素的總和。 list1=["香蕉","蘋果","橘子","鳳梨","西瓜"] # list1,reverse() #print(list1) list1[::-1] ``` ['西瓜', '鳳梨', '橘子', '蘋果', '香蕉'] ```python # 找出最大值:編寫一個程式,在一個整數串列中查找並返回最大的數字。 list2=[21,63,91,20] themax=list2[0] for n in list2: if n>themax: themax=n print(themax,max(list2)) ``` 91 91 ```python # 找出最小值:編寫一個程式,在一個整數串列中查找並返回最小的數字。 list2=[21,63,91,20] themin=list2[0] for n in list2: if n<themin: themin=n print(themin,min(list2)) ``` 20 20 ```python dict3={"香蕉":20,"蘋果":50,"橘子":50,"鳳梨":18,"西瓜":50} print(dict3) ``` {'香蕉': 20, '蘋果': 50, '橘子': 50, '鳳梨': 18, '西瓜': 50} ```python dict3={"香蕉":20,"蘋果":50,"橘子":50,"鳳梨":18,"西瓜":50,"香蕉":120} print(dict3) ``` {'香蕉': 120, '蘋果': 50, '橘子': 50, '鳳梨': 18, '西瓜': 50} ```python # 血型個性查詢 \<dictget> 血型_個性={"A":1,"B":2,"O":3,"AB":4} blood=input("你的血型") result = 血型_個性[blood] print("查詢結果:",result) ``` 你的血型A 查詢結果: 1 ## [Afterclass Practice] B 1. 關於字典,下列何者敘述是錯誤的? (A)以「鍵-值」對方式儲存 (B)資料依序排列 (C)可由「鍵」取得「值」 (D)資料隨機排列 D 2. d={"香蕉":20, "蘋果":50},print(d[0]) 的結果為何? (A)香蕉 (B)20 (C)50 (D)產生錯誤 ```python d={"香蕉":20, "蘋果":50} print(d[0]) ``` --------------------------------------------------------------------------- KeyError Traceback (most recent call last) Cell In[1], line 2 1 d={"香蕉":20, "蘋果":50} ----> 2 print(d[0]) KeyError: 0 B 3. d={"香蕉":20, "蘋果":50},print(d["香蕉"]) 的結果為何? (A)香蕉 (B)20 (C)50 (D)產生錯誤 ```python d={"香蕉":20, "蘋果":50} print(d["香蕉"]) ``` 20 C 4. d={"香蕉":20, "蘋果":50},print(d.get("巴樂", 60)) 的結果為何? (A)20 (B)50 (C)60 (D)None ```python d={"香蕉":20, "蘋果":50} print(d.get("巴樂", 60)) ``` 60 A 5. d={"香蕉":20, "蘋果":50},程式「d["巴樂"]=60」的作用為: (A)新增資料 (B)修改資料 (C)取得資料 (D)刪除資料 ```python d={"香蕉":20, "蘋果":50} d["巴樂"]=60 print(d) ``` {'香蕉': 20, '蘋果': 50, '巴樂': 60} A 6. d={"香蕉":20, "蘋果":50},程式「d.clear()」的作用為: (A)刪除所有元素 (B)刪除一個元素 (C)刪除字典 (D)以上皆非 ```python d={"香蕉":20, "蘋果":50} d.clear() print(d) ``` {} C 7. d={"香蕉":20, "蘋果":50},print("香蕉" in d) 的結果為何? (A)20 (B)50 (C)True (D)False ```python d={"香蕉":20, "蘋果":50} print("香蕉" in d) ``` True C 8. 下列哪一個功能可取得字典中所有「值」? (A)in (B)keys (C)values (D)items D 9. 下列哪一個功能可取得字典中所有「鍵」及所有「值」? (A)in (B)keys (C)values (D)items B 10.d={"香蕉":20},print(d.setdefault("巴樂")) 的結果為何? (A)20 (B)None (C)巴樂 (D)產生錯誤 ```python d={"香蕉":20} print(d.setdefault("巴樂")) ``` None ## [Self Practice] 輸入小於5位數的阿拉伯數字,畫面馬上將數字轉換為中文大寫數字。 ```python cnum = {0:"零", 1:"壹", 2:"貮", 3:"參", 4:"肆", 5:"伍", 6:"陸", 7:"柒", 8:"捌", 9:"玖"} num = input("請輸入小於5位數的數字:") for n in num: print(cnum[int(n)], end="") ``` 請輸入小於5位數的數字:7446 柒肆肆陸