第1章 Python概述

一、选择题
1.C 2.B 3.D
二、填空题
1.#
2.IDLE

三、简答题
1.答:
Python是解释型语言:计算机不能直接理解高级语言,只能直接理解机器语言。使用解释型语言编写的源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。因此使用Python编写的程序不需要翻译成二进制的机器语言,而是直接从源代码运行,过程如图1-3所示。

2.答:
(1)简单易学:Python语言很简洁,语法也很简单,只需要掌握基本的英文单词就可以读懂Python程序。这对于初学者无疑是个好消息。因为简单就意味着易学,可以很轻松的上手。
(2)Python是开源的、免费的:开源是开放源代码的简称。也就是说,用户可以免费获取Python的发布版本,阅读、甚至修改源代码。很多志愿者将自己的源代码添加到Python中,从而使其日臻完善。
(3)Python是高级语言:与java和c一样,Pathon不依赖任何硬件系统,因此属于高级开发语言。在使用Python开发应用程序时,不需要关注低级的硬件问题,例如内存管理。
(4)高可移植性:由于开源的缘故,Python兼容很多平台。如果在编程时多加留意系统依赖的特性,Python程序无需进行任何修改,就可以在各种平台上运行。Python支持的平台包括Linux、 Windows、 FreeBSD、 Macintosh、 Solaris、 OS/2、 Amiga、 AROS、 AS/400、 BeOS、 OS/390、z/OS、 Palm OS、 QNX、VMS、Psion、Acorn RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE和PocketPC。
(5)Python是解释型语言:计算机不能直接理解高级语言,只能直接理解机器语言。使用解释型语言编写的源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。因此使用Python编写的程序不需要翻译成二进制的机器语言,而是直接从源代码运行,过程如图1-3所示。

图1-3 Python程序的运行过程
(6)Python全面支持面向对象的程序设计思想:面向对象是目前最流行的程序设计思想。所谓面向对象,就是基于对象的概念,以对象为中心,类和继承为构造机制,认识了解刻画客观世界以及开发出相应的软件系统。关于面向对象的程序设计思想的细节将在第4章介绍。
(7)高可扩展性:如果希望一段代码可以很快的运行,或者不希望公开一个算法,则可以使用C或C++编写这段程序,然后在Python中调用。从而实现对Python程序的扩展。
(8)支持嵌入式编程:可以将Python程序潜入到C/C++程序中,从而为C/C++程序提供脚本能力。
(9)功能 强大的开发库:Python标准库非常庞大,可以实现包括正则表达式、文档生成、单元测试、线程、数据库、浏览器、CGI、FTP、Email、XML、XML-RPC、HTML、加密、GUI(图形用户界面)等功能。除了标准库外,还有很多其他的功能强大的库,本书后面部分会介绍这些库的具体情况。

3.答:
在Python的官方网站上,同时提供2.0系列和3.0系列2个版本。这2个版本的差
表1-1 Python 2和PythonPython 3的差异
项 目 Python 2 Python 3
使用范围 更广泛 较不广泛
支持的包数量 较多 较少
客人维护性 可能不更新 更面向未来
由于历史的原因,Python 2推出的更早,支持它的库就更多一些。由于一些第3方库已经停止了更新,因此很多第3方库不再支持Python 3。当然越来越多的第3方库正在向Python 3迁移,正因为如此,Python 2的使用范围要更加广泛一些。当然Python 3的应用也比较广泛,只是与Python 2相比要弱一些。
从可维护性的角度讲,Python基金会已经明确表示:Python 2将不再被更新,很可能只更新到2.7版本。而Python 3将持续更新下去。因此Python 3更面向未来。

第2章 Python语言基础

一、单项选择题
1.A 2.D 3.B 4.A 5.C
6.B 7.C 8.C 9. B
二、填空题
1.elif
2.整数;长整数;浮点数;复数
3.id()
4.+=
5.class
6.可变;不可变
7.self
8.@staticmethod
9.instance()

三、问答题
1.答:
Python的标识符命名规则如下:

  • 标识符名字的第1个字符必须是字母或下划线(_);
  • 标识符名字的第1个字符后面可以由字母、下划线(_)或数字(0~9)组成;
  • 标识符名字是区分大小写的。也就是说Score和score是不同的。

2.答:
列表具有如下特性:

  • 和变量一样,每个列表都有一个唯一标识它的名称。
  • 一个列表的元素应具有相同的数据类型。
  • 每个列表元素都有索引和值两个属性,索引是一个从0开始的整数,用于标识元素在列表中的位置;值当然就是元素对应的值。

3.答:
元组与列表非常相似,它具有如下特性:

  • 一经定义,元组的内容不能改变。
  • 元组元素可以存储不同类型的数据,可以是字符串、数字,甚至是元组。
  • 元组元素由圆括号括起来,例如:
    t = (1, 2, 3, 4)

4.答:
字典也是在内存中保存一组数据的数据结构,与列表不同的是:每个字典元素都有键(key)和值(value)两个属性,键用于定义和标识字典元素,键可以是一个字符串,也可以是一个整数;值当然就是字典元素对应的值。因此,字典元素就是一个“键/值对”。

第3章 常用Python语句

一、选择题
1.A 2.D 3.B 4.A
二、填空题
1.elif
2.Exception
3.continue
4.return
三、问答题
1.答:

2.答:

第4章 Python函数

一、选择题
1.D 2.A 3.D 4.B
5.A 6.B 7.D 8.A
9.A
二、填空题
1.逗号
2.实参,形参
3.Return
4.pow
5.str.lower()
6.reduce
7.迭代器
8.enumerate
四、简答题
1.答
在函数中也可以定义变量,在函数中定义的变量被称为局部变量,在函数体之外定义的变量是全局变量。
局部变量只在定义它的函数内部有效,在函数体之外,即使使用同名的变量,也会被看作是另一个变量。全局变量在定义后的代码中都有效,包括它后面定义的函数体内。如果局部变量和全局变量同名,则在定义局部变量的函数中,只有局部变量是有效的。
2.答:
函数式编程一种编程的基本风格,也就是构建程序的结构和元素的方式。函数式编程将计算过程看作是数学函数,也就是可以使用表达式编程。在函数的代码中,函数的返回值只依赖传入函数的参数,因此使用相同的参数调用函数2次,会得到相同的结果。
3.答:
函数式编程具有如下优点:
(1)便于进行单元测试
所谓单元测试是指对软件中的最小可测试单元进行检查和验证。函数正是最小可测试单元的一种。
(2)便于调试
如果一个函数式编程运行时没有达到预期的效果,可以很容易地对其进行调试。因为在函数式编程中使用相同的参数调用函数2次,会得到相同的结果。bug将很容易重现,有利于找到造成bug的原因。
(3)适合并行执行
所谓并行,通常指程序的不同部分可以同时运行而不互相干扰。程序并行执行的最大问题是可能造成死锁。死锁指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,如果没有外力作用,它们都将无法推进下去。

4.答:
生成器是一个特殊的函数它具有如下特点:
(1)生成器函数都包含一个yield语句,当执行到yield语句时函数返回;
(2)生成器函数可以记住上一次返回时在函数体中的位置,对生成器函数的下一次调用跳转至该函数中间,而上次调用的所有局部变量都保持不变。

第5章 Python模块

一、选择题
1.A 2.D 3.D
二、填空题
1.time
2.import
3.version
4.processor

三、简答题
1、函数是可以实现一项或多项功能的一段程序。模块是好多功能的扩展,是可以实现一项或多项功能的程序块。从定义可以看到,函数是一段程序,模块是一项程序块。也就是说函数和模块都是用来实现功能的,但是模块的范围比函数要广。在模块里可以重用多个函数。
Python的模块以.py文件的形式存储,保存在Python主目录下的Lib目录下。
2、
在Python中,如要在程序 使用摸个模块,必须先导入模块。使用import语句可以导入模块,语句如下:
import 模块名
可以使用下面的方式访问模块中的函数:
模块名.函数名(参数列表)
可以使用下面的方式访问模块中的变量:
模块名.变量

第6章 I/O编程

一、选择题
1.B 2.C 3.C
二、填空题
1.Input;Output
2.close
3.readlines
4.tell
5.shutil
6.getcwd

三、简答题
1.答:
文件指针是指向一个文件的指针变量,用于标识当前读写文件的位置,通过文件指针就可对它所指的文件进行各种操作。