第 1章 Python简介 1
1.1 认识Python 1
1.1.1 什么是Python语言 1
1.1.2 Python语言的优点与缺点 2
1.1.3 为什么选择Python语言 3
1.2 Python的安装 4
1.2.1 Windows环境下安装 4
1.2.2 Linux和UNIX环境下安装 6
本章小结 7
练习题 7
实战作业 7
第 2章 基础语法知识 8
2.1 数字和表达式 8
2.2 变量 10
2.3 语句 11
2.4 获取用户输入 11
2.5 函数 12
2.6 模块 13
2.7 程序的运行 14
2.7.1 通过命令提示符运行Python脚本 14
2.7.2 让脚本像普通程序一样运行 14
2.7.3 注释 15
2.8 字符串 16
2.8.1 单引号字符串和转义引号 16
2.8.2 拼接字符串 17
2.8.3 字符串str和repr 18
2.8.4 input 19
2.8.5 长字符串、原始字符串和Unicode 19
本章小结 21
练习题 22
第3章 条件、循环和其他语句 23
3.1 print语句的应用 23
3.2 赋值语句 24
3.2.1 序列解包 25
3.2.2 链式赋值 25
3.2.3 增量赋值 25
3.3 代码块与缩进 26
3.4 条件语句 26
3.4.1 布尔变量 26
3.4.2 if 语句 26
3.4.3 else子句 27
3.4.4 elif子句 27
3.4.5 嵌套条件语句 29
3.5 循环语句 30
3.5.1 while循环 31
3.5.2 for循环 32
3.5.3 Python 循环嵌套 34
3.5.4 跳出循环(break与continue) 34
3.5.5 循环中的else子句 35
3.5.6 综合应用 36
本章小结 38
练习题 38
实战作业 41
第4章 字符串 43
4.1 字符串的基本操作 43
4.1.1 字符串的表示 43
4.1.2 索引 44
4.1.3 分片 45
4.1.4 合并 48
4.1.5 复制 48
4.1.6 截取 49
4.1.7 比较 50
4.1.8 长度与最值 51
4.1.9 in运算符 51
4.2 字符串格式化 52
4.2.1 字符串的格式化输出 52
4.2.2 宽度和精度 53
4.2.3 字符串转义字符 54
4.3 常用字符串函数和方法 55
本章小结 61
练习题 61
实战作业 62
第5章 文件 64
5.1 文件和文件路径 65
5.1.1 os.path.join()和os.mkdir() 66
5.1.2 绝对路径和相对路径 66
5.1.3 查看当前目录os.getcwd() 67
5.1.4 改变当前目录os.chdir() 67
5.1.5 os.remove()及os.rmdir() 67
5.1.6 rename()函数 67
5.1.7 表示当前目录的“.”和表示上级目录的“..” 67
5.1.8 os.walk()方法 68
5.2 文件的读写 69
5.2.1 open()函数 69
5.2.2 read()方法 70
5.2.3 write()方法 70
5.2.4 通用新行格式 72
5.3 文件定位 72
5.3.1 tell()函数 73
5.3.2 seek()函数 73
5.4 文件、目录相关的函数及综合应用示例 73
5.4.1 file对象函数 73
5.4.2 目录常用函数 74
5.4.3 os模块综合应用示例 75
5.5 CSV文件操作 76
5.5.1 CSV模块 76
5.5.2 CSV Reader 78
5.5.3 CSV Writer 78
5.5.4 CSV应用实例 78
本章小结 80
练习题 80
实战作业 81
第6章 列表和元组 83
6.1 序列概览 85
6.2 通用序列操作 85
6.2.1 索引 86
6.2.2 分片 88
6.2.3 列表的运算 90
6.2.4 列表的常用函数 91
6.3 列表对象 92
6.3.1 基本的列表操作 92
6.3.2 列表方法 93
6.3.3 列表解析 96
6.4 元组:不可变序列 96
6.4.1 tuple函数 97
6.4.2 基本元组操作 97
6.4.3 为什么需要元组 98
6.5 列表应用举例:文件分析 98
本章小结 101
练习题 101
实战作业 102
第7章 函数 104
7.1 什么是函数 104
7.2 参数传递 106
7.3 参数的类型 107
7.3.1 必备参数 107
7.3.2 关键字参数 108
7.3.3 默认参数 108
7.3.4 不定长参数 109
7.4 匿名函数 110
7.5 变量作用域 111
7.6 函数的属性 113
7.7 Python中的main函数 114
7.8 Python的zip函数 115
7.9 常见内置函数 116
7.9.1 与数学相关的函数 116
7.9.2 类型转换函数 117
7.9.3 相关操作函数 118
7.10 函数的应用举例 119
本章小结 124
练习题 124
实战作业 125
第8章 字典 126
8.1 什么是字典 126
8.2 字典的创建和使用 127
8.2.1 直接创建字典 127
8.2.2 通过dict函数创建字典 128
8.2.3 字典的修改和删除 128
8.2.4 字典的遍历 129
8.3 字典的基本操作 130
8.3.1 get函数:访问字典成员 130
8.3.2 copy函数:返回一个具有相同键值的新字典 131
8.3.3 pop函数:删除字典中对应的键和值 132
8.3.4 Fromkeys函数:用给定的键建立新的字典 132
8.3.5 setdefault函数:获取与给定键相关联的值 132
8.3.6 update函数:用一个字典更新另外一个字典 133
8.3.7 关键字in的应用 133
8.4 字典的格式化字符串 134
8.5 字典的排序 135
8.5.1 sorted函数按key值对字典排序 135
8.5.2 sorted函数按value值对字典排序 135
8.6 字典的实例应用 136
本章小结 140
练习题 140
实战作业 140
第9章 异常和异常处理 142
9.1 错误与异常 143
9.1.1 语法错误 143
9.1.2 异常 143
9.2 异常处理 144
9.2.1 异常处理语法 144
9.2.2 常见异常处理示例 145
9.3 抛出异常和自定义异常 146
9.3.1 如何抛出异常 146
9.3.2 用户自定义异常 147
本章小结 148
练习题 148
第 10章 图形用户界面 151
10.1 丰富的平台 151
10.2 下载和安装wxPython 152
10.3 创建示例GUI应用程序 152
10.3.1 Hello World! 152
10.3.2 窗口 154
10.3.3 控件:面板、标签、菜单栏 154
10.3.4 案例制作:简易编辑器 157
10.3.5 更智能的布局 159
10.3.6 最基本的Sizer:GridSizer 160
10.3.7 FlexGridSizer 162
10.3.8 GridBagSizer 164
10.3.9 BoxSizer 165
10.3.10 StaticBoxSizer 168
10.3.11 案例制作:用户收件信息录入界面 169
10.4 初步了解tkinter 172
本章小结 172
练习题 173
实战作业 173
第 11章 面向对象程序设计 174
11.1 面向对象程序设计思想 175
11.1.1 面向对象的基本概念 175
11.1.2 面向对象设计 177
11.2 类和对象 177
11.2.1 创建类 177
11.2.2 创建对象 178
11.3 属性和数据 178
11.3.1 类属性 178
11.3.2 实例属性 179
11.3.3 类属性与实例属性的联系 180
11.3.4 私有属性与公有属性 180
11.3.5 自定义属性 181
11.3.6 self的作用 182
11.4 方法 182
11.4.1 方法的声明和调用 182
11.4.2 实例方法、类方法和静态方法 183
11.4.3 绑定方法和非绑定方法 185
11.4.4 私有方法与公有方法 187
11.4.5 构造方法与析构方法 187
11.4.6 特殊方法 189
11.5 继承 189
11.5.1 概念 189
11.5.2 单继承 189
11.5.3 继承与抽象 190
11.5.4 覆盖方法 191
11.5.5 多重继承 192
11.6 多态和封装 193
11.6.1 多态性 193
11.6.2 封装和私有化 194
11.7 定制类 196
11.8 迭代器 198
11.9 生成器 199
11.10 综合示例 200
本章小结 202
练习题 202
实战作业 203
第 12章 数据库支持 204
12.1 数据库概述 205
12.2 Python数据库编程接口(DB-API) 205
12.2.1 DB-API简介与统一操作模式 205
12.2.2 模块接口(Module Interface) 206
12.2.3 Connection对象 207
12.2.4 Cursor游标对象 208
12.3 MySQL关系数据库操作 208
12.3.1 PyMySQL下载与安装 209
12.3.2 PyMySQL基本操作 209
12.4 SQLite数据库与操作 212
12.4.1 SQLite介绍与安装 212
12.4.2 SQLite-Python接口及操作 214
本章小结 217
练习题 218
实战作业 218
第 13章 程序开发进阶 219
13.1 简介 220
13.2 分治算法 220
13.3 鸢尾花的分类 221
13.3.1 KNN(K-NearestNeighbor)算法介绍 221
13.3.2 K个最近邻居 222
13.3.3 构造分类样本 222
13.4 设计分类算法 223
13.5 详细设计 224
13.5.1 文件格式 224
13.5.2 存储格式 225
13.5.3 loadDataset函数 225
13.5.4 getNeightbors函数 226
13.5.5 getResponse函数 228
13.5.6 getAccuracy函数 229
13.5.7 总体运行 229
13.5.8 不足之处 232
13.6 其他有趣的算法问题 232
13.6.1 乳腺癌分类问题 232
13.6.2 葡萄酒品质分类 234
本章小结 235
练习题 235
实战作业 235