Python的dictionary集合,字典,由key value組成,鍵值對
# 符號使用大括號 {}
# 每個項目都是一個「鍵值對 (Key-Value Pair)」,是字典最基本的單位
# 用冒號「:」連接鍵和值,不同的鍵值對之間用逗號「,」分隔
# 特性1:鍵唯一(Unique Keys),鍵必須是獨一個,不能重複。若重複,取最末者
# 特性2:值可重複(Values can be duplicated):不同鍵可指向相同值
# 特性3:有序(Ordered),字典中的項目會保持插入時的順序(從3.7版新版開始)
# 特性4:可變(Mutable),可以修改、新增、刪除集合裡的鍵值對
-
3道基本練習題# 麵菜單
# 提供菜單讓使用者輸入,並計算價格。
menu = {
'陽春麵': 60,
'牛肉麵': 120,
'榨菜肉絲麵': 90,
'餛飩麵': 100
}
cart = [] # 先創一個空的購物車,使用list[]集合,收集使用者點單的飲料
total = 0 # 金額計算,未開始前是 0 元
print('菜單')
print('------------')
for noodle, price in menu.items(): # drink對應key(麵),price對應value(價格)
print(f'{noodle} :NT. {price} 元') # 印出完整菜單
while True:
noodle = input('請輸入要點的麵點(輸入 f 結束點單):') # 由使用者輸入點單
if noodle == 'f':
break # 若輸入'f',就break跳出(結束)
elif menu.get(noodle) is None:
print(f'抱歉,沒有提供這款麵點。')
else:
cart.append(noodle) # 用之前建的list[] 收集購物車cart所有點單
total += menu.get(noodle) #用.get()取得使用者點單所對應的「值」
print(f'已點 {noodle}', end = ';') # 將所有點單印出。「end = ' '」是指不換行,用空格隔開
print(f'總金額為:NT {total} 元。')
# 飲料單
# 提供飲料單讓使用者輸入,並計算價格。
# 需要用到「字典集合」、「for/while loop」、「購物車cart」、if條件句
drink_menu ={ # 創一個飲料單的字典集合
'Juice' : 200,
'Ice coffee' : 150,
'Cola' : 120,
'Black Tea' : 140
}
cart = [] # 創一個購物車,收集使用者點單的飲料
total = 0 # 金額計算,未開始前是 0 元
print('飲料單')
print('------------')
for drink, price in drink_menu.items(): # drink對應key(飲料),price對應value(價格)
print(f'{drink} :NT. {price}') # 印出完整飲料單
while True:
drink = input('請輸入欲購買飲料(輸入 f 結束點單):') # 由使用者輸入點單
if drink == 'f':
break #若輸入'f',就break跳出(結束)
elif drink_menu.get(drink) is None:
print(f'抱歉,沒有提供這款飲料。')
else:
cart.append(drink) #將購物車cart的所有飲料收集
total += drink_menu.get(drink) #用.get()取得使用者點單所對應的「值」
print(drink, end = ' ') # 將所有點單印出。「end = ' '」是指不換行,用空格隔開
print(f'總金額為:NT {total} 元。')
# 首都題
# 讓使用者輸入一個國家名稱:
# 如果國家已在字典中,印出對應首都
# 如果國家不在字典中,請使用者輸入這個國家首都,然後把它加進字典裡
# 最後,印出目前所有的國家與首都
capital = {
'Taiwan' : 'Taipei',
'Japan' : 'Tokyo',
'Korea' : 'Seoul',
}
capital_key = input('請輸入一個國家:')
if capital_key in capital:
print(f'{capital_key} 的首都是 {capital.get(capital_key)}。')
else:
capital_value = input('抱歉,我們尚未收入此國資料。請您輸入此國家首都:')
print(f"感謝提供,我們已新增:{capital_key} 的首都是 {capital_value}。")
capital.update({capital_key : capital_value})
print('\n所有的國家首都如下:') # 用 \n 換行,newline
for x, y in capital.items():
print(f'{x} ➜ {y}')








