python编程快速上手项目答案-python编程快速上手之第5章实践项目参考答案

1 #!/usr/bin/env python3.5

2 #coding:utf-8

3 #5.6.1

4 #好玩游戏的物品清单

5 #给定一个字典,包含物品名称和数量,并打印出数量对应的物品

6

7 dict_stuff = {"rope":1,"torch":6,"gold coin":42,"dagger":1,"arrow":12}8 print("5.6.1参考答案")9 print("=" * 80)10 print("给定字典:",dict_stuff)11 print("运行结果:")12 defdisplayInventory(inventory):13 print("Inventory:")14 item_total =015 for k,v ininventory.items():16 print(str(v) + " " +k)17 item_total +=v18 print("Total number of items:" +str(item_total))19 displayInventory(dict_stuff)20 print("=" * 80)21 print()22

23 #5.6.2

24 #将给定的列表添加到字典中去,并统计相同键对应的数量,最后统计总字典中值的总数

25 dragonLoot = ["gold coin","dagger","dagger","gold coin","gold coin","ruby","ruby"]26

27 print("5.6.2参考答案")28 print("=" * 80)29 inv = {"gold coin":42,"rope":1}30 print("给定列表:",dragonLoot)31 print("给定字典:",inv)32 print("运行结果:")33

34 #按照SWI的思路,这里可以2种方法:

35 #1是将列表转换成字典再操作

36 #2是用setdefault方法将列表元素加到字典再进行元素个数的自增

37 #在此感谢SWI的指点斧正。

38

39 defaddToInventory(inventory,addedItems):40 for item inaddedItems:41 inventory.setdefault(item,0)42 inventory[item] += 1

43 returninventory44 inv =addToInventory(inv,dragonLoot)45 print(inv)46 displayInventory(inv)47 print("=" * 80)

程序运行结果如下:

(py35env) frank@ThinkPad:py_fas$ python dict_inventory-5.py

5.6.1参考答案

================================================================================

给定字典: {"arrow": 12, "gold coin": 42, "dagger": 1, "rope": 1, "torch": 6}

运行结果:

Inventory:

12arrow

42gold coin

1dagger

1rope

6torch

Total number of items:62

================================================================================

5.6.2参考答案

================================================================================

给定列表: ["gold coin", "dagger", "dagger", "gold coin", "gold coin", "ruby", "ruby"]

给定字典: {"rope": 1, "gold coin": 42}

运行结果:

{"ruby": 2, "dagger": 2, "rope": 1, "gold coin": 45}

Inventory:

2ruby

2dagger

1rope

45gold coin

Total number of items:50

================================================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值