python實踐專案(四)

2021-08-10 02:34:24 字數 2905 閱讀 7527

練習1:好玩遊戲的物品清單

意味著玩家有

1 條繩索、

6 個火把、

42 枚金幣等。寫乙個名為

displayinventory()

的函式,它接受任何可能的物品清單,並顯示如下:

inventory:

12 arrow

42 gold coin

1 rope

6 torch

1 dagger

total number of items: 62

displayinventory.py

#-*-coding:utf-8-*-

#初始字典

inv =

# 列印字典

def dispalyinventory(inventory):

print('inventory')

item_total = 0

for k, v in inventory.items():

print(str(v) + ' ' + k)

#print(str(v) + ' ' + str(k))

item_total += v

print('total number of items: ' + str(item_total))

dispalyinventory(inv)

練習2: 列表到字典的函式,針對好玩遊戲物品清單

假設征服一條龍的戰利品表示為這樣的字串列表:

dragonloot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']

寫乙個名為

addtoinventory(inventory, addeditems)

的函式, 其中

inventory

引數是乙個字典, 表示玩家的物品清單(像前面專案一樣),

addeditems

引數是乙個列表,就像

dragonloot

。addtoinventory()

函式應該返回乙個字典,表示更新過的物品清單。請注意,列表可以包含多個同樣的項。你的**看起來可能像這樣:

def addtoinventory(inventory, addeditems):

# your code goes here

inv =

dragonloot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']

inv = addtoinventory(inv, dragonloot)

displayinventory(inv)

前面的程式(加上前乙個專案中的

displayinventory()

函式) 將輸出如下:

inventory:

45 gold coin

1 rope

1 ruby

1 dagger

total number of items: 48

addtoinventory.py

#-*-coding:utf-8-*-

#列表新增到字典的函式---方法1

# def addtoinventory(inventory,addeditems):

# for i in range (len(addeditems)):

# if addeditems[i] in inventory.keys():

# inventory[addeditems[i]] += 1

# else:

# inventory[addeditems[i]] =1

# return inventory

#列表新增到字典的函式---方法2

def addtoinventory(inventory,addeditems):

for k in addeditems:

if k in inventory.keys():

inventory[k] += 1

else:

inventory[k] = 1

return inventory

# 列印字典

def dispalyinventory(inventory):

print('inventory')

item_total = 0

for k, v in inventory.items():

print(str(v) + ' ' + k)

#print(str(v) + ' ' + str(k))

item_total += v

print('total number of items: ' + str(item_total))

#初始字典

inv =

#需要新增的列表

dragonloot = ['gold coin','dagger','gold coin','gold coin','ruby']

#dragonloot = ['gold coin','dagger','gold coin','gold coin','ruby',1,3]

#列表新增到字典

inv = addtoinventory(inv,dragonloot)

#顯示更新後的字典

dispalyinventory(inv)

React 實踐專案 (四)

react在github上已經有接近70000的 star 數了,是目前最熱門的前端框架。而我學習react也有一段時間了,現在就開始用 react redux 進行實戰!上回說到使用redux saga 管理 redux 應用非同步操作,應用還是只有乙個首頁.現在開始構建乙個新的投稿頁面並使用 r...

React 實踐專案 (四)

react在github上已經有接近70000的 star 數了,是目前最熱門的前端框架。而我學習react也有一段時間了,現在就開始用 react redux 進行實戰!上回說到使用redux saga 管理 redux 應用非同步操作,應用還是只有乙個首頁.現在開始構建乙個新的投稿頁面並使用 r...

python基礎實踐(四)

coding utf 8 author sweeping monk why 為什麼要組織列表?print why chicken soup t因為你無法控制使用者提供資料的順序。permanent ordering.sort 永久性修改列表元素的排列順序。前提是所有元素值第一位都是小寫 或者全是大寫...