Python程序设计-清华大学出版社-董付国第6章 面向对象程序设计
- 格式:ppt
- 大小:542.50 KB
- 文档页数:30
《Python程序设计》习题与参考答案之南宫帮珍创作第1章基础知识1.1 简单说明如何选择正确的Python版本。
答:在选择Python的时候,一定要先考虑清楚自己学习Python 的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2.x还是Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9。
这些问题都确定以后,再做出自己的选择,这样才干事半功倍,而不至于把大量时间浪费在Python的反复装置和卸载上。
同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。
尽管如此,Python 3究竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了测验考试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3)。
1.2 为什么说Python采取的是基于值的内存管理模式?答:Python采取的是基于值的内存管理方式,如果为分歧变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。
>>> x = 3>>> id(x)10417624>>> y = 3>>> id(y)10417624>>> y = 5>>> id(y)10417600>>> id(x)104176241.3 在Python中导入模块中的对象有哪几种方式?答:经常使用的有三种方式,分别为●import 模块名 [as 别号]●from 模块名 import 对象名[ as 别号]●from math import *1.4 使用pip命令装置numpy、scipy模块。
Python程序设计基础与应用习题答案董付国机械工业出版社目录第1章Python概述 (3)第2章内置对象、运算符、表达式、关键字 (4)第3章Python序列结构 (5)第4章选择结构与循环结构 (6)第5章函数 (9)第6章面向对象程序设计 (11)第7章字符串 (12)第8章正则表达式 (13)第9章文件内容操作 (14)第10章文件与文件夹操作 (16)第11章异常处理结构 (18)第12章tkinter编程案例 (20)第13章网络爬虫入门与应用 (21)第14章Python数据分析与处理 (22)第15章数据可视化 (23)第1章Python概述1.1略1.2略1.3略1.4答:1)使用mport模块名[as别名]这种方式将模块导入以后,使用时需要在对象之前加上模块名作为前缀,必须以“模块名.对象名”的形式进行访问。
如果模块名字很长的话,可以为导入的模块设置一个别名,然后使用“别名.对象名”的方式来使用其中的对象。
2)使用from模块名import对象名[as别名]方式仅导入明确指定的对象,并且可以为导入的对象起一个别名。
这种导入方式可以减少查询次数,提高访问速度,同时也可以减少程序员需要输入的代码量,不需要使用模块名作为前缀。
3)使用from模块名import*方式可以一次导入模块中的所有对象,简单粗暴,写起来也比较省事,可以直接使用模块中的所有对象而不需要再使用模块名作为前缀,但一般并不推荐这样使用。
1.5答:通过Python程序的__name__属性可以识别程序的使用方式,如果作为模块被导入,则其__name__属性的值被自动设置为模块名;如果作为程序直接运行,则其__name__属性值被自动设置为字符串”__main__”。
第2章内置对象、运算符、表达式、关键字2.1//2.2|2.3-2.4&2.5A<B2.61:2:32.7len2.8错2.9错2.10错2.11错2.12不可以,集合中的元素不允许重复,Python不支持集合与整数的乘法运算。
第 6 章Python程序设计基础教程面向对象程序设计类的定义和实例化6.1 面向对象程序设计6.2 6.3 数据成员与成员方法6.4 属性6.5 计算机网络的类别6.5 继承 多态6.6 6.7 特殊方法和运算符重载6.48 习题6.1.1 面向过程与面向对象6.1.2 面向对象的主要特性点6.1面向对象程序设计1.1 Python 语言简介6.1 面向对象程序设计Python语言简介面向对象程序设计(Object-Oriented Programming,OOP),是开发计算机应用程序的一种新方法、新思想,已成为业界主流的程序设计方法。
使用OOP技术,能够大幅提高程序代码复用率,更加有利于软件的开发、维护和升级。
6.1.1 面向过程与面向对象面向过程一种以事件为中心的编程思想,以功能(行为)为导向,按模块化的设计,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象一种以事物为中心的编程思想,以数据(属性)为导向,将具有相同一个或者多个属性的物体抽象为“类”,将他们包装起来;而有了这些数据(属性)之后,我们再考虑他们的行为(对这些属性进行什么样的操作),是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,6.1.1 面向过程与面向对象6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。
把上面每个步骤用分别的函数来实现,问题就解决了。
而面向对象的设计则是从另外的思路来解决问题。
整个五子棋可以分为:1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。
第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。