#!/usr/bin/env python3.5
# coding:utf-8
# 5.6.1
# 好玩游戏的物品清单
# 给定一个字典,包含物品名称和数量,并打印出数量对应的物品 dict_stuff = {'rope':1,'torch':6,'gold coin':42,'dagger':1,'arrow':12}
print("5.6.1参考答案")
print('=' * 80)
print("给定字典:",dict_stuff)
print("运行结果:")
def displayInventory(inventory):
print("Inventory:")
item_total = 0
for k,v in inventory.items():
print(str(v) + '\t' + k)
item_total += v
print("Total number of items:" + str(item_total))
displayInventory(dict_stuff)
print('=' * 80)
print() # 5.6.2
# 将给定的列表添加到字典中去,并统计相同键对应的数量,最后统计总字典中值的总数
dragonLoot = ['gold coin','dagger','dagger','gold coin','gold coin','ruby','ruby'] print("5.6.2参考答案")
print('=' * 80)
inv = {'gold coin':42,'rope':1}
print("给定列表:",dragonLoot)
print("给定字典:",inv)
print("运行结果:") # 按照SWI的思路,这里可以2种方法:
# 1是将列表转换成字典再操作
# 2是用setdefault方法将列表元素加到字典再进行元素个数的自增
# 在此感谢SWI的指点斧正。 def addToInventory(inventory,addedItems):
for item in addedItems:
inventory.setdefault(item,0)
inventory[item] += 1
return inventory
inv = addToInventory(inv,dragonLoot)
print(inv)
displayInventory(inv)
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:
12 arrow
42 gold coin
1 dagger
1 rope
6 torch
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:
2 ruby
2 dagger
1 rope
45 gold coin
Total number of items:50
================================================================================

python编程快速上手之第5章实践项目参考答案的更多相关文章

  1. python编程快速上手之第10章实践项目参考答案

      本章主要讲了python程序的调试,当程序有BUG或异常的时候,我们如何调试代码找出问题点.其实在本章之前的章节我们做练习的时候都会遇到各种各样的错语和异常,最初当不知道程序哪里出错的情况下不可否 ...

  2. python编程快速上手之第9章实践项目参考答案

    本章介介绍了shutil,zipfile模块的使用,我们先来认识一下这2个模块吧. 一.shutil模块 shutil模块主要用于对文件或文件夹进行处理,包括:复制,移动,改名和删除文件,在shuti ...

  3. python编程快速上手之第8章实践项目参考答案

    第8章实践项目之疯狂填词 创建一个一个疯狂填词(Mad Libs),程序,它将读入文本文件,并让用户在该文本文件中出现 ADJECTIVE,NOUN,VERB等单词的地方,加上他们自己的文本. 首先准 ...

  4. python编程快速上手之第3章实践项目参考答案

    1 #!/usr/bin/env python 2 # coding:utf-8 3 # write by mfyang 4 # collatz.py 5 # 从用户读入一个值,并判断这个值是不是一个 ...

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

    #!/usr/bin/env python3.5 #coding:utf-8 import re # 7.18.1 # 强口令检测 # 写一个函数,使用正则表达式,确保传入的口令字符串是强口令 # 长 ...

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

    #!/usr/bin/env python3.5 2 #coding:utf-8 3 # 4 # 这个项目主要目的是字符串的处理,简单格式化输出 5 tableData = [['apples','o ...

  7. python编程快速上手之第4章实践项目参考答案

    #!/usr/bin/env python3.5 # coding:utf-8 # 假定有一个列表,编写函数以一个列表值作为参数,返回一个字条串 # 该字符串包含所有表项,之间以逗号和空格分隔,并在最 ...

  8. Python 编程快速上手 第十四章 处理 CSV 文件和 JSON 数据

    前言 这一章分为两个部分,处理 CSV 格式的数据和处理 JSON 格式个数据. 处理 CSV 理解 csv csv 的每一行代表了电子表格中的每一行,每个逗号分开两个单元格csv 的内容全部为文本, ...

  9. Python 编程快速上手 第十五章 保持时间,计划任务和启动程序

    前言 这一章节的主要内容是: 处理时间类型的数据(使用python 的两个模块: time 和 datetime 来处理) 创建多个线程 (使用 threading 模块来创建多个线程) 进行多个进程 ...

随机推荐

  1. XD

    题目 是否完成 题目分类 简要题解 没有上司的舞会(codevs1380) Y 树形dp dp[u][0]表示不包含此节点,dp[u][1]表示包含,转移方程为 dp[u][0]+=max(dp[v] ...

  2. 开涛spring3(9.4) - Spring的事务 之 9.4 声明式事务

    9.4  声明式事务 9.4.1  声明式事务概述 从上节编程式实现事务管理可以深刻体会到编程式事务的痛苦,即使通过代理配置方式也是不小的工作量. 本节将介绍声明式事务支持,使用该方式后最大的获益是简 ...

  3. AtomicInteger的使用

    JDK API 1.7相关介绍 可以用原子方式更新的 int 值.有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范.AtomicInteger 可用在应用 ...

  4. .net 非对称加密

    后台   public class RSAHelper     {         /// <summary>         /// RSA加密         /// </sum ...

  5. C语言之运算符和条件结构

    表达式:是有操作数和运算符组成的. 操作数:常量.变量.子表达式 X=(x+2)*(y-2); 运算符: 赋值运算符:= .其作用是做赋值运算,将等号后边的值赋值给等号前边的. 复合赋值运算符: += ...

  6. python基础 --02

    常见的数据类型 列表 在python中,列表的创建可以是由[]两个方括号组成的.在其他语言中,被称之为数组. 列表里可以存放一组值,并且系统默认的给列表里的每一个元素以索引值,方便查找和使用. 如下: ...

  7. VR全景,零售业冬天里的一把火——全景智慧城市

    对今天的中国来说,寻找经济转型的突破口,寻找经济权力的新霸主,零售业应该当仁不让. 零售业正在经历一场脱胎换骨的改造.一方面零售额达到前所未有的水平,另一方面,传统零售商也面临诸多挑战,其中之一,便是 ...

  8. ThinkPHP5.0更改框架的验证方法对象->validate(true)->save();

    我们更希望看到: // 新增对象至数据表 $result = $Teacher->validate(true)->save(); 而不是: // 新增对象至数据表 $result = $T ...

  9. springboot问题:解决异常Unable to start embedded container;

    使用eclipse创建springboot练习时,当主函数与控制器同时写在同一个类时,启动项目正常运行,而当把主函数单独放在一个类中时,无论是与控制器同包还是控制器所在的包是其子包,都报: org.s ...

  10. Sizzle 源码分析 (二)

    在Sizzle函数中,如果能快速处理或者通过querySelector处理,那么就使用它处理.否则使用select函数处理 . select函数 select = Sizzle.select = fu ...