---
# System prepended metadata

title: wk08_1026_串列與元組、字典
tags: [python]

---

### wk08_1026_串列與元組、字典

##### Ch05_串列與元組
- 5.5 串列排序
- 5.6 串列常用的方法列表
- 5.7 元組(Tuple)

##### Ch06_字典


#### 【inclass practice】

###### Ch05

###### 實作6
<pre>
西元2021年是牛年。請你開發一個程式:
當使用者輸入他的出生西元年之後，畫面會顯示這個西元年的生肖。</pre>


```python
animals = "鼠牛虎免龍蛇馬羊猴雞狗豬"
year = int(input("請輸入你的出生西元年："))
print("西元{}年出生屬{}".format(year, animals[(year-2020) % 12]))
```

    請輸入你的出生西元年：2002
    西元2002年出生屬馬
    


```python
生肖 = ['鼠','牛','虎','免','龍','蛇','馬','羊','猴','雞','狗','豬']

x = int(input("輸入你的出生西元年：")) 
a = x -2020
b = a % 12
c = a // 12

print("您的生肖 =", 生肖[b])


```

    輸入你的出生西元年：2002
    您的生肖 = 馬
    


```python
scores = [21, 63, 91, 20]

scores = sorted(scores)

print(scores)
```

    [20, 21, 63, 91]
    

###### 實作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 結束)：梨子
    梨子 不在串列中!
    請輸入喜歡的水果(Enter 結束)：西瓜
    西瓜 在串列中的第 5 項
    請輸入喜歡的水果(Enter 結束)：
    

{補充} list +  while 練習
1. 計算總和：編寫一個程式，使用迴圈計算一個整數串列的所有元素的總和。
2. 找出最大值：編寫一個程式，在一個整數串列中查找並返回最大的數字。
3. 偶數過濾：編寫一個程式，接受一個整數串列，然後返回一個只包含偶數的新串列。
4. 反轉串列：編寫一個程式，將一個字元串列反轉，例如，將['a', 'b', 'c']轉換為['c', 'b', 'a']。
5. 查找元素：編寫一個程式，接受一個整數串列和一個目標數字，返回目標數字在串列中的索引，如果它不存在，返回-1。


```python
#反轉串列：編寫一個程式，將一個字元串列反轉，例如，將['a', 'b', 'c']轉換為['c', 'b', 'a']。

list1 = ["香蕉","蘋果","橘子","鳳梨","西瓜"]

#list1.reverse()
#print(list1)

list1[0:5:1]
```




    ['香蕉', '蘋果', '橘子', '鳳梨', '西瓜']




```python
#找出最大值：編寫一個程式，在一個整數串列中查找並返回最大的數字。

list2 = [21, 63, 91, 20]
themaximum = list2[0]

for n in list2 :
    if n > themaximum :
        themaximum = n

print(themaximum)
```

    91
    

#### 【afterclass practice】

1. 綜合演練 選擇題1-10  (需抄題在markdown cell ; 有程式碼的題目要有code cell )
2. 教學影音 :  新手入門#8Dictionary

1. 關於字典,下列何者敘述是錯誤的?
                                           
       (A)以「鍵-值」對方式儲存
       (B)資料依序排列
       (C)可由「鍵」取得「值」
       (D)資料隨機排列

       Ans:(B)

2. d={"香蕉":20,"蘋果":50}，print(d[0])的結果為何?

       (A)香蕉 (B)20 (C)50 (D)產生錯誤
       
       Ans:(D)

3. d={"香蕉":20, "蘋果":50}，print(d["香蕉"])的結果為何?

       (A)香蕉 (B)20 (C)50 (D)產生錯誤
       
       Ans:(B)

4. d={"香蕉":20, "蘋果":50}，print(d.get("芭樂",60))的結果為何?

       (A)20 (B)50 (C)60 (D) None
       
       Ans:(C)

5. d={"香蕉":20, "蘋果":50}，程式「d["芭樂"]=60」的作用為:

       (A)新增資料 (B)修改資料 (C)取得資料 (D)刪除資料
       
       Ans:(A)

6. d={"香蕉":20, "蘋果":50}，程式「d.clear()」的作用為:

       (A)刪除所有元素 (B)刪除一個元素 (C)刪除字典 (D)以上皆非
       
       Ans:(A)

7. d={"香蕉":20, "蘋果":50}，print("香蕉" in d)的結果為何?

       (A)20 (B)50 (C)True (D)False
       
       Ans:(C)

8. 下列哪一個方法可取得字典中所有「值」?

       (A)in (B)keys (C)values (D)items
       
       Ans:(C)

9. 下列哪一个方法可取得典中所有「鍵」及所有「值」?

       (A)in (B)keys (C)values (D)items
       
       Ans:(D)

10. d={"香蕉":20}，print(d.setdefault("芭樂"))的結果為何?

        (A)20 (B)None (C)芭樂 (D)產生錯誤
        
        Ans:(B)
        
        


```python
#2. d={"香蕉":20,"蘋果":50}，print(d[0])的結果為何?

d = {"香蕉": 20, "蘋果": 50}
print(d[0])
```


    ---------------------------------------------------------------------------

    KeyError                                  Traceback (most recent call last)

    Cell In[2], line 4
          1 #2. d={"香蕉":20,"蘋果":50}，print(d[0])的結果為何?
          3 d = {"香蕉": 20, "蘋果": 50}
    ----> 4 print(d[0])
    

    KeyError: 0



```python
#3. d={"香蕉":20, "蘋果":50}，print(d["香蕉"])的結果為何?

d = {"香蕉": 20, "蘋果": 50}
print(d["香蕉"])
```

    20
    


```python
#4. d={"香蕉":20, "蘋果":50}，print(d.get("芭樂",60))的結果為何?

d={"香蕉":20, "蘋果":50}
print(d.get("芭樂",60))   
#這是因為 get 方法用於從字典中取得指定鍵的值。如果字典中存在指定的鍵，它將返回該鍵對應的值。
#但如果字典中不存在指定的鍵（在這個例子中是 "芭樂"），get 方法將返回你所提供的預設值，這裡是 60。所以，由於 "芭樂" 不是字典 d 中的鍵，d.get("芭樂", 60) 將返回預設值 60，並印出它。
```

    60
    


```python
#7. d={"香蕉":20, "蘋果":50}，print("香蕉" in d)的結果為何?

d={"香蕉":20, "蘋果":50}
print("香蕉" in d)
```

    True
    


```python
#10. d=f“香蕉“:20]print(d.setdefault("芭樂"))的結果為何?

d = {"香蕉": 20}
print(d.setdefault("芭樂"))
```

    None
    
