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