《Python编程快速上手—让繁琐工作自动化》实践项目答案:第五章

发布时间 2023-03-31 09:46:46作者: 之几

5.6.1 好玩游戏的物品清单
你在创建一个好玩的视频游戏。用于对玩家物品清单建模的数据结构是一个字典。其中键是字符串,描述清单中的物品,值是一个整型值,说明玩家有多少该物品。例如,字典值{'rope': 1, 'torch': 6, 'gold coin': 42, 'dagger': 1, 'arrow': 12}意味着玩家有 1 条绳索、6 个火把、42 枚金币等。

点击查看代码
stuff = {'rope': 1,'torch': 6,'gold coin': 42,'dagger': 1,'arrow': 12}

def displayInventory(inventory):
    print('Inventory:')
    item_total = 0
    for k, v in inventory.items():
        print(str(v) + ' ' + k)
        item_total += v
    print('Total number of items: ' + str(item_total))

displayInventory(stuff)

5.6.2 列表到字典的函数,针对好玩游戏物品清单
假设征服一条龙的战利品表示为这样的字符串列表:
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
  写一个名为 addToInventory(inventory, addedItems)的函数,其中 inventory 参数是一个字典,表示玩家的物品清单(
像前面项目一样),addedItems 参数是一个列表,就像 dragonLoot。

点击查看代码
def addToinventory(inventory, addedItems):
    for i in addedItems:
        if i in inventory:
            inventory[i] += 1
        else:
            inventory.setdefault(i,1)
    return inventory

inv = {'gold coin': 42, 'rops': 1}
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
# inv = addToinventory(inv,dragonLoot)
print(addToinventory(inv,dragonLoot))

5.6.3 和前面的函数displayInventory() 同时使用

点击查看代码
def displayInventory(inventory):
    print('Inventory:')
    item_total = 0
    for k, v in inventory.items():
        print(str(v) + ' ' + k)
        item_total += v
    print('Total number of items: ' + str(item_total))

def addToinventory(inventory, addedItems):
    for i in addedItems:
        if i in inventory:
            inventory[i] += 1
        else:
            inventory.setdefault(i,1)
    return inventory

inv = {'gold coin': 42, 'rops': 1}
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
inv = addToinventory(inv,dragonLoot)
displayInventory(inv)