本书以零基础为起点介绍Python程序设计方法。各章内容由浅入深、相互衔接、前后呼应、循序渐进。为了提高读者对程序设计思想方法的理解,本书将程序设计语言模型与人类自然语言模型进行了比较,使读者对程序设计语言模型及其内容的理解有了完整的参照对象。全书各章节选用大量程序设计语言经典实例来讲解基本概念和程序设计方法,同时配有大量习题供读者练习。本书共12章,主要内容包括程序设计语言绪论、对象与类型、运算符与表达式、程序控制结构、函数、列表与元组、字典与集合、文件与目录、模块、错误与异常、面向对象编程、图形用户界面编程。本书语言表达严谨,文字流畅,内容通俗易懂、重点突出、实例丰富,适合作为高等院校各专业程序设计语言课程的教材,还可作为全国计算机二级考试的参考用书。
作者团队强大,符合二级等考要求,可作为非计算机专业*门程序设计课程教材
目前,在教育部高等学校计算机基础课程教学指导委员会的指导下,计算机基础课程教学改革工作在不断推进深入。程序设计语言课程是大学生必须掌握的计算机基础课程,大学生们通过这门课程的学习,应该掌握程序设计的基本方法,具备用程序解决问题的能力。如何选择某种程序设计语言作为高等学校大学生程序设计课程的语言环境,是各校计算机基础教育工作者研究的课题之一。Python语言作为一门开源语言,已被许多学校引入教学过程。它是面向对象和过程的程序设计语言,具有无界整数数据类型及丰富的数据结构、可移植性强、语言简洁、程序可读性强等特点。根据实际教学经验,在程序设计课程教学改革研究时,我们选用Python语言作为程序设计课程的语言环境。对本书内容的选择,我们力求面向读者,以程序设计零基础为起点,全面介绍了包括面向过程和面向对象的Python程序设计方法。让读者首先接受面向对象的程序设计的思想方法,并理解面向对象的程序设计是需要以面向过程的程序设计方法作为基础的。
全书共分为12章,第1章介绍程序设计语言入门与Python语言开发环境;第2章介绍对象与类型;第3章介绍运算符与表达式;第4章介绍程序控制结构;第5章介绍函数;第6章介绍列表与元组;第7章介绍字典与集合;第8章介绍文件与目录;第9章介绍模块;第10章介绍错误与异常;第11章介绍面向对象编程;第12章介绍图形用户界面编程。
本书编者长期从事程序设计课程的教学工作,并利用各种语言开发工具开发了许多软件项目,具有丰富的教学经验和较强的科学研究能力。编者本着加强基础、注重实践、强调思想方法的教学、突出应用能力和创新能力培养的原则,力求使本书有较强的可读性、适用性和先进性。我们的教学理念是:教学是教思想、教方法,真正做到授人以鱼,不如授人以渔。为了加强读者对程序设计思想方法的理解,本书将程序设计语言模型与人类自然语言模型相比较,让读者对程序设计语言模型及其内容的理解有了完整的参照对象。为了提高读者的编程技巧,书中选用了大量的经典例题,这些例题与相应章节的内容是完全吻合的,例题还备有多种可能的解答,以期拓展读者的解题思路。为了便于读者自学,全书在内容组织、编排上注重由浅入深、循序渐进。因此,本书适合作为高等院校各专业程序设计课程的教材,也可作为广大计算机爱好者的自学参考用书。教师选用本书作为大学生程序设计课程的教材时,可根据实际教学课时数调整或取舍内容。
本书所给出的程序示例均在Python 3.3环境下进行了调试和运行。为了帮助读者更好地学习Python,编者在每章后还编写了大量的习题供读者练习。
本书由杨长兴主编,并负责全书的总体策划、统稿和定稿工作。肖峰教授协助主编完成统稿、定稿工作。各章参加编写人员:中南大学杨长兴(第1章);大连医科大学肖峰、河北医科大学李连捷(第2、3章);中山大学刘燕(第4章);北京大学郭永青(第5章);首都医科大学夏翃(第6章);中南大学田琪、李利明、李小兰(第7、8章);复旦大学韩绛青、武警后勤学院孙纳新(第9、10章);中南大学周春艳、刘卫国、朱从旭(第11章);肖峰、中南大学周肆清、罗芳、奎晓燕(第12章)。
本书的编写得到了清华大学谭浩强教授、吴文虎教授的指导与帮助,在此一并表示衷心感谢。在本书的编写过程中,中南大学邵自然、吕格莉、裘嵘、杨莉军、曹丹等老师参与了大纲的讨论,本书吸收了他们许多宝贵的意见和建议,在此一并表示衷心感谢。编者在编写本书的过程中参考了大量的文献资料,在此也向这些文献资料的作者表示衷心感谢。
由于编者水平所限,书中疏漏及不妥之处在所难免,敬请读者不吝赐教。
编 者
2016年6月
杨长兴,男,1962年3月出生,湖南安乡人。中南大学信息科学与工程学院教授、计算中心主任。教育部2006-2010年、2013-2017年大学计算机课程教学指导委员会委员;全国高校计算机基础教育研究会医学专业委员会副主任委员;湖南省高教学会计算机教育专业委员会常务理事。主要研究方向为网格技术、医学信息表达与处理。近年在国家自然科学核心期刊发表学术论文30余篇;主编出版著作10余部;主持或参与国家自然科学基金和省级自然科学基金项目多项;多次参加国际国内医药信息科学学术活动。长期从事计算机专业和基础课程教学,在教学理念、教学内容与方法上有比较丰富的经验。
第1章 程序设计语言绪论 1
1.1 计算机程序设计语言概述 1
1.2 程序的编译与解释 3
1.3
Python语言 4
1.3.1
Python语言及其特点 4
1.3.2
第一个Python语言程序示例 5
1.3.3
Python语言程序的书写规范 6
1.4 配置Python语言的开发环境 6
1.5 编写程序的基本步骤 8
1.6 算法与流程图 9
1.6.1
算法 9
1.6.2
流程图 10
小结 11
习题 11
第2章 对象与类型 12
2.1 对象的基本概念 12
2.2 变量与对象的关系 13
2.2.1
变量引用对象 13
2.2.2
多个变量共享引用同一对象 14
2.2.3
对象的删除 14
2.3 对象类型 15
2.4 数字 15
2.4.1
整数类型 15
2.4.2
浮点数 16
2.4.3
复数 16
2.5 字符串 16
2.5.1
字符串的基本使用方法 16
2.5.2
索引、切片操作 17
2.5.3
单个字符的字符串问题 18
2.5.4
字符串的函数与方法 19
2.6 字节串和字节数组 20
小结 21
习题 21
第3章 运算符与表达式 22
3.1 数字对象的运算 22
3.1.1
算术运算 22
3.1.2
关系运算 23
3.1.3
逻辑运算 24
3.1.4
移位和按位逻辑运算 25
3.1.5
条件表达式 26
3.1.6
标准类型操作符 26
3.2 运算符的优先级与结合性
26
3.3 常用函数 27
3.3.1
常用内置函数 27
3.3.2
数学函数库的函数应用 31
3.4 常用的字符串方法 33
3.5 有关字节串和字节数组的方法
36
小结 37
习题 37
第4章 程序控制结构 39
4.1 顺序结构 39
4.1.1
赋值语句 39
4.1.2
基本输入/输出 40
4.2 分支结构 41
4.2.1
if语句(单分支) 42
4.2.2
if...else语句(双分支) 42
4.2.3
if...elif语句(多分支) 43
4.2.4
if语句和if... else语句的嵌套形式 44
4.3 循环语句 45
4.3.1
while语句 45
4.3.2
for 语句 47
4.3.3
多重循环 49
4.4
pass、break、continue、else语句 50
4.4.1
pass 语句 50
4.4.2
break 语句 50
4.4.3
continue语句 51
4.4.4
else语句 52
4.5 程序实例 52
小结 60
习题 60
第5章 函数 62
5.1 函数的概念 62
5.2 函数的定义与调用 63
5.2.1
函数定义 63
5.2.2
函数调用 64
5.2.3
函数的返回值 65
5.3 参数传递方式 66
5.4 变量作用域 66
5.5 嵌套调用与递归调用 71
5.5.1
函数的嵌套调用 71
5.5.2
函数的递归调用 72
小结 75
习题 75
第6章 列表与元组 78
6.1 序列 78
6.1.1
序列模型 78
6.1.2
序列操作及操作符 79
6.1.3
序列相关的内置函数 80
6.2 列表 80
6.2.1
列表的基本操作 81
6.2.2
列表可用的操作符 82
6.2.3
列表可用的函数(方法) 84
6.2.4
列表的应用 87
6.3 元组 91
6.3.1
元组的定义与操作 92
6.3.2
元组的特殊性质及作用 92
6.4
Python对象的浅复制与深复制 93
小结 95
习题 95
第7章 字典与集合 96
7.1 字典 96
7.1.1
字典的基本操作 96
7.1.2
字典可用的操作符 98
7.1.3
字典可用的函数与方法 99
7.2 集合 103
7.2.1
集合的基本操作 104
7.2.2
集合可用的操作符 106
7.2.3
集合可用的函数与方法 109
7.3 字典与集合的应用 110
小结 111
习题 111
第8章 文件与目录 113
8.1 文件的打开与关闭 113
8.1.1
文件的打开 113
8.1.2
文件的关闭 115
8.2 文件的读/写 115
8.2.1
用于读/写的方法 115
8.2.2
文件读/写实例 116
8.3 文件目录 119
小结 120
习题 120
第9章 模块 121
9.1 名称空间 121
9.2 导入模块 122
小结 123
习题 123
第10章 错误与异常 124
10.1
异常 124
10.1.1
异常的概念 124
10.1.2
Python中的异常 125
10.2
异常的检测与处理 126
10.2.1
try ... except语句 127
10.2.2
try ... except ... else语句 127
10.2.3
带有多个except子句的try语句 128
10.2.4
finally子句 129
10.2.5
捕获所有异常 129
10.3
断言语句与上下文管理语句 129
10.3.1
断言语句(assert语句) 129
10.3.2 上下文管理语句(with语句) 130
10.4
raise语句 130
小结 132
习题 132
第11章 面向对象编程 133
11.1
面向对象程序设计的基本概念 133
11.2
类与实例 136
11.2.1
类的定义与属性 136
11.2.2
实例的声明 137
11.2.3
构造器方法与解构器方法 138
11.2.4
实例属性 140
11.3
派生与继承 142
11.3.1
子类的创建(派生) 142
11.3.2
标准类型派生的子类 143
11.3.3
继承 143
11.4
重载 146
11.5
类、实例可用的内置函数 147
小结 150
习题 150
第12章 图形用户界面编程 152
12.1
常用GUI 模块介绍 152
12.2
tkinter模块 153
12.2.1
使用tkinter编程的基本步骤 153
12.2.2
tkinter组件 154
12.2.3
标准属性 155
12.2.4
组件布局 158
12.2.5
主窗口的属性 161
12.3
标签组件 161
12.4
按钮 163
12.5
输入框 166
12.6
选择按钮与单选按钮 171
12.6.1
选择按钮 172
12.6.2
单选按钮 173
12.6.3
选择按钮与单选按钮应用示例 174
12.7
框架与标签框架 176
12.8
菜单 177
12.8.1
菜单栏菜单 177
12.8.2
在菜单栏菜单中创建选择按钮与单选按钮 179
12.8.3
弹出式菜单 180
12.9
列表框 181
12.10
滚动条与进度条 183
12.10.1
滚动条 184
12.10.2
进度条 184
12.11
画布 186
12.11.1
画布组件的基本用法 186
12.11.2
画布组件中的对象创建 188
12.11.3
画布应用的简单示例 191
小结 192
习题 193
参考文献 194