这是自己做的练习,可能有错误,欢迎讨论和各种优化重构方案。
根据反馈,或者code review,对本篇文章答案或者相关内容的更新补充,一般会被添加在本篇博客的评论中。
将尽量保证每题的答案代码是完整的,不仅仅是函数或者类,打开Python 2.7的IDLE,将代码完整拷贝进去,就能调试运行。
欢迎访问Balian在博客园的家。 http://www.cnblogs.com/balian

13-10.
堆栈和队列。编写一个类,定义一个能够同时具有堆栈()和队列()操作行为的数据结构。这个类和Perl语言中的数组相像。需要实现四个方法:
shift()    返回并删除列表中的第一个元素,类似于前面的dequeue()函数。
unshift() 在列表的头部“压入”一个新元素。
push() 在列表的尾部加上一个新元素,类似于前面的enqueue()和push()方法。
pop() 返回并删除列表中的最后一个元素,与前面的pop()方法完全一样。
请参见练习13-8和练习13-9。

【答案】
代码如下:

#-*- encoding: utf-8 -*-class ArrayPattern(object):'定义数组模型类'def __init__(self, arrayList):self.arrayList = arrayListdef shift(self):headItem = self.arrayList[0]print 'Item ', headItem, ' is deleted from the head of array.'self.arrayList = self.arrayList[1:]print 'The updated array is: ', self.arrayList, '\n'def unshift(self, headItem):tempList = [headItem]for item in self.arrayList:tempList.append(item)self.arrayList = tempListprint 'Item ', headItem, ' is added on the head of array'print 'The updated array is: ', self.arrayList, '\n'  def push(self, endItem):self.arrayList.append(endItem)print 'Item ', endItem, ' is added on the end of array.'print 'The updated array is: ', self.arrayList, '\n'     def pop(self):endItem = self.arrayList.pop()print 'Item ', endItem, ' is poped.'print 'The updated array is: ', self.arrayList, '\n'    a_array = ArrayPattern([1, 2, 3, 4, 5, 6, 7, 8])
a_array.shift()
a_array.unshift(9)
a_array.push(10)
a_array.pop()
 

【执行结果】

Item  1  is deleted from the head of array.
The updated array is:  [2, 3, 4, 5, 6, 7, 8]

Item  9  is added on the head of array
The updated array is:  [9, 2, 3, 4, 5, 6, 7, 8]

Item  10  is added on the end of array.
The updated array is:  [9, 2, 3, 4, 5, 6, 7, 8, 10]

Item  10  is poped.
The updated array is:  [9, 2, 3, 4, 5, 6, 7, 8]

13-11.
电子商务。
你需要为一家B2C(企业到消费者)零售商编写一个基础的电子商务引擎。你需要写一个针对顾客的类User,一个对应存货清单的类Item,还有一个对应购物车的类叫Cart。货物放到购物车里,顾客可以有多个购物车。同时购物车里可以有多个货物,包括多个同样的货物。
【未完】
感觉有难度,暂时押后。

13-12.
聊天室。
因为博客只讨论技术,所以题目略有修改,原题请见书第408页。创建一个新的聊天室。你需要三个类:一个Message类,它包含一个消息字符串以及诸如广播、单方收件人等其他信息;一个User类,包含了进入你聊天室的某个人的所有信息。还有一个Room类,它体现了一个更加复杂的聊天系统,用户可以在聊天时创建单独的“房间”,并邀请其他人加入。附加题:请为用户开发一个图形化用户界面应用程序。
【未完】
感觉有难度,暂时押后。

转载于:https://www.cnblogs.com/balian/archive/2012/09/21/2696587.html

《Python核心编程》第二版第407页第十三章练习 续六 -Python核心编程答案-自己做的-...相关推荐

  1. 《Python核心编程》第二版第308页第十一章练习 续一 -Python核心编程答案-自己做的-...

    本博客列出的答案不是来自官方资源,是我自己做的练习,如果有疑问或者错误,欢迎讨论. 原书(英文版)作者的blog :) http://wescpy.blogspot.ca/ 11-7. 用map()进 ...

  2. 《Python核心编程》第二版第36页第二章练习 -Python核心编程答案-自己做的-

    <Python核心编程>第二版第36页第二章练习 这里列出的答案不是来自官方资源,是我自己做的练习,可能有误. 2.21 练习 2-1. 变量,print和字符串格式化操作符.启动交互式解 ...

  3. 《Python核心编程》第二版第18页第一章练习 -Python核心编程答案-自己做的-

    <Python核心编程>第二版第18页第一章练习 这里列出的答案不是来自官方资源,是我自己做的练习,可能有误. 1.9 练习 1-1. 安装Python.请检查Python是否已经安装到你 ...

  4. 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

    目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高 ...

  5. python核心编程第二版pdf_Python Book电子书pdf版合集 Python核心高级编程第二版

    1小时学会Python.doc 51CTO下载-[Python系列].BeginningPythonFromNovicetoProfessionalSecondEdition.pdf 8.Python ...

  6. python核心教程第二版答案_python核心编程第二版第4章习题答案.docx

    python核心编程第二版第4章习题答案.docx 4-1.Python 对象.与所有 Python 对象有关的三个属性是什么?请简单的描述一下. 答案: 所有的 Python 对象都拥有三个特性:身 ...

  7. python基础教程第二版和第三版哪个好-python基础教程 2版和3版哪个适合新手?!...

    python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...

  8. 【Python 自然语言处理 第二版】读书笔记1:语言处理与Python

    文章目录 前言 语言处理与Python 一.语言计算:文本和单词 1.NLTK入门 (1)安装(nltk.nltk.book) (2)搜索文本 (3)词汇计数 2.列表与字符串 (1)列表操作 (2) ...

  9. 利用python进行数据分析第二版pdf百度云_参考《利用Python进行数据分析(第二版)》高清中文PDF+高清英文PDF+源代码...

    第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas.NumPy.IPython和Jupyter,并增加大量实际案例,可以帮助高效解决一系列数据分析问题. 第2版中的主要更新了Py ...

  10. 《Programming Ruby 中文版第二版》P577页singleton_method_undefined方法说明有点问题

    "当一个singleton方法在这个接受者中没有定义(??)时,singleton_method_undefined作为回调函数会被调用" 这是书上P577页的说法,看看官网的原文 ...

最新文章

  1. VRRP在企业网中的应用(H3C设备)
  2. phpAmin如何导入导出大数据文件?
  3. 启明云端WT516P6Core离线语音模块发布后,开发者朋友提出的问题最多的是:是否可以自己编译指令
  4. 企业的无线安全问题综合解决方案
  5. Git的commit之后的撤销reset
  6. 算法---FaceNet+mtcnn的使用记录
  7. JVM之GCRoots概述
  8. 存储器和寄存器数据传输(ARMv8)
  9. 分享一个maven国内镜像 超级快!
  10. 这个 Python 库有必要好好学学
  11. 三维图形 纵坐标_《从柯氏四级培训效果评估到三维培训课程需求评估》
  12. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期下跌2.77%
  13. Maven 插件(plugin)
  14. metainfo可以设置说明_Vs Code安装说明及入门操作
  15. 数学速算法64种口诀_小学数学有哪些数学计算技巧?
  16. java day37【web相关概念回顾 、web服务器软件:Tomcat 、Servlet入门学习】
  17. 推荐多款好看的报表表单配色方案
  18. 树莓派C语言超声波传感器测距
  19. 程序员值得提升的沟通小技巧!
  20. edp协议 netty_使用esp8266 arduino 通过EDP协议 将数据传递到onenet平台

热门文章

  1. fenking是什么意思?
  2. 河里的水哪里去了——兼谈气候变暖与西方文明
  3. SHELL下获得指定进程的进程号,并截取为整数
  4. DeepStream中,获得并修改识别对象参数的代码
  5. Please select Android SDK的解决
  6. php 保存json格式数组 json_encode /u 不转义
  7. 微贷网 Java_关于Java集合的小抄
  8. basic语言基础 chm_拒付论文装订费错失博士学位,C语言之父毕业论文丢失52年重见天日...
  9. java的线程的daemon_Java 多线程(四)之守护线程(Daemon)
  10. sql怎么select中位数_怎么能避免写出慢SQL?