---
# System prepended metadata

title: wk08_1026_元組_字典
tags: [大三上Python程式語言]

---

# 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
    柒肆肆陸
