项目1 Python概述及安装、配置\t1
1.1 任务1 认识Python\t1
1.1.1 Python的起源和发展\t1
1.1.2 Python的特性和优势\t2
1.1.3 Python与云计算\t6
1.2 任务2 下载和安装Python\t6
1.2.1 Python版本差异\t6
1.2.2 Python虚拟机简介\t6
1.2.3 Python的下载\t7
1.2.4 在Windows环境下安装Python\t8
1.2.5 在Windows下配置Python环境\t9
1.3 任务3 熟悉开发工具的使用\t9
1.3.1 使用交互式解释器\t10
1.3.2 使用文本编辑器\t10
1.3.3 使用集成开发环境\t11
1.3.4 Python增强工具\t11
1.4 任务4 获取帮助和查看文档\t12
1.4.1 查看特定对象的可用操作\t12
1.4.2 文档字符串\t12
1.4.3 使用帮助函数\t13
1.4.4 使用文档\t13
1.5 小结\t13
1.6 习题\t14
项目2 数据类型、表达式和用户交互\t15
2.1 任务1 掌握Python数据类型\t15
2.1.1 基本数据类型\t15
2.1.2 容器数据类型\t16
2.2 任务2 掌握表达式和运算符\t17
2.2.1 数学运算符\t17
2.2.2 比较运算符\t18
2.2.3 赋值运算符\t18
2.2.4 位运算符\t19
2.2.5 身份运算符\t20
2.2.6 逻辑运算符\t20
2.2.7 运算符优先级\t20
2.3 任务3 了解Python代码的规范性要求\t21
2.3.1 合法的变量名\t21
2.3.2 转义字符\t22
2.3.3 编写注释\t22
2.3.4 变量注解\t23
2.3.5 行拆分与行拼接\t23
2.4 任务4 程序设计:模拟掷骰子\t24
2.4.1 初识模块\t24
2.4.2 掷骰子的实现\t24
2.5 任务5 初步了解Python中的对象\t24
2.5.1 工厂函数\t25
2.5.2 不可变对象\t25
2.5.3 可变对象\t25
2.6 任务6 了解Python程序的交互方法\t26
2.6.1 input()函数\t26
2.6.2 print()函数的一些特性\t26
2.6.3 格式化表达式\t27
2.6.4 其他相关函数\t27
2.6.5 任务:打印员工信息表\t28
2.7 小结\t28
2.8 习题\t29
项目3 流程控制\t30
3.1 任务1 了解代码块和程序框图\t30
3.1.1 代码块与缩进\t30
3.1.2 程序框图\t31
3.2 任务2 掌握分支结构\t32
3.2.1 单条件分支结构\t32
3.2.2 多条件分支结构\t33
3.2.3 嵌套的分支结构\t34
3.2.4 单句多条件和短路逻辑\t35
3.2.5 多个if代码块\t35
3.2.6 if语句的三目运算形式\t36
3.3 任务3 掌握循环结构\t36
3.3.1 while语句\t36
3.3.2 子任务:骰子模拟器\t38
3.3.3 子任务:输出九九乘法表\t38
3.3.4 break语句\t39
3.3.5 continue语句\t39
3.3.6 循环结构中的else语句\t39
3.3.7 pass语句\t40
3.4 任务4 掌握高级循环:for循环、列表
推导式及生成器\t40
3.4.1 for循环\t40
3.4.2 基于for循环的死循环\t42
3.4.3 列表推导式\t43
3.4.4 生成器\t44
3.5 小结\t45
3.6 习题\t45
项目4 容器数据类型:序列、字典和集合\t47
4.1 任务1 了解序列类型\t47
4.1.1 容器数据类型简介\t47
4.1.2 序列的索引和切片操作\t48
4.1.3 序列中的运算符重载\t49
4.2 任务2 了解列表和元组\t49
4.2.1 列表和元组\t49
4.2.2 列表常用方法\t50
4.2.3 列表和数据结构\t50
4.2.4 可变对象的复制\t52
4.2.5 元组\t54
4.3 任务3 了解字符串\t55
4.3.1 字符串简介\t55
4.3.2 字符串常用方法\t55
4.3.3 增强的格式化字符串方法\t57
4.3.4 方法和函数的链式调用\t59
4.3.5 Python代码中的字符编码\t60
4.3.6 数据编码\t61
4.3.7 子任务:基于控制台的计算器\t61
4.4 任务4 了解字典\t62
4.4.1 字典简介\t62
4.4.2 字典的创建和访问\t62
4.4.3 键必须是可哈希的\t64
4.4.4 字典相关方法\t64
4.4.5 子任务:员工信息系统\t65
4.5 任务5 了解集合\t66
4.5.1 集合简介\t66
4.5.2 可变集合和不可变集合\t67
4.6 小结\t68
4.7 习题\t68
项目5 文件操作及系统交互\t70
5.1 任务1 认识文件句柄对象\t70
5.1.1 文件的打开\t70
5.1.2 文件的读取\t71
5.1.3 文件指针操作\t72
5.1.4 文件的写入\t73
5.1.5 文件的缓冲\t73
5.2 任务2 掌握文件和目录的管理\t75
5.2.1 文件的复制\t75
5.2.2 文件的删除\t76
5.2.3 文件的属性获取\t76
5.2.4 文件的重命名\t78
5.2.5 目录的创建\t79
5.2.6 目录的删除\t79
5.2.7 与目录有关的其他操作\t80
5.2.8 系统命令的执行\t80
5.2.9 输入/输出重定向\t81
5.2.10 带有参数的源代码脚本执行方式\t82
5.2.11 子任务:文本替换程序\t82
5.3 任务3 掌握时间和日期的处理\t83
5.3.1 时间戳及时间元组\t83
5.3.2 格式化时间和日期\t84
5.3.3 程序运行时间控制\t85
5.3.4 日期的置换\t86
5.3.5 日期和时间的差值计算\t86
5.4 任务4 了解序列化\t87
5.4.1 序列化和反序列化\t87
5.4.2 JSON和JSON化\t88
5.5 任务5 基于文件存储的用户账户登录
功能\t88
5.5.1 程序功能设计\t89
5.5.2 程序实现\t89
5.6 小结\t91
5.7 习题\t91
项目6 函数\t92
6.1 任务1 掌握函数的定义和调用\t92
6.1.1 函数的定义和调用\t92
6.1.2 函数对象赋值\t94
6.1.3 位置参数\t94
6.1.4 关键字参数\t95
6.1.5 默认参数\t95
6.1.6 可变参数和关键字收集器\t97
6.1.7 参数组\t98
6.1.8 函数注解\t98
6.2 任务2 了解函数的高级特性和功能\t99
6.2.1 作用域和名称空间\t99
6.2.2 在函数中修改全局变量\t100
6.2.3 匿名函数\t101
6.2.4 用函数实现生成器\t101
6.2.5 子任务:重新实现xreadlines()
方法\t103
6.2.6 递归函数\t103
6.2.7 函数闭包\t105
6.2.8 装饰器\t105
6.3 任务3 掌握高阶函数\t107
6.3.1 什么是高阶函数\t107
6.3.2 map()函数\t108
6.3.3 reduce()函数\t108
6.3.4 filter()函数\t110
6.3.5 sorted()函数\t110
6.4 小结\t112
6.5 习题\t112
项目7 面向对象编程\t114
7.1 任务1 了解什么是面向对象编程\t114
7.1.1 面向对象思想\t114
7.1.2 对象和类\t114
7.1.3 封装\t115
7.2 任务2 掌握类和实例的语法规则\t115
7.2.1 类和对象的创建\t116
7.2.2 类的构造方法\t116
7.2.3 类方法及self参数\t116
7.2.4 类和对象的属性\t117
7.3 任务3 链表的实现\t117
7.3.1 链表的结构特征\t117
7.3.2 链表的创建和初始化\t118
7.3.3 链表的信息查询和数据查找\t119
7.3.4 为链表添加新节点\t119
7.3.5 删除节点\t121
7.4 任务4 掌握类的深度定制\t121
7.4.1 为对象添加属性和方法\t122
7.4.2 静态方法\t122
7.4.3 类方法\t123
7.4.4 静态属性\t123
7.4.5 类属性\t124
7.4.6 私有字段\t125
7.4.7 私有方法\t126
7.4.8 标准类\t127
7.4.9 对象的销毁与回收\t127
7.5 任务5 掌握类的继承和派生\t128
7.5.1 父类和子类\t128
7.5.2 继承\t128
7.5.3 覆盖方法\t129
7.5.4 多重继承\t130
7.5.5 钻石问题和经典类\t130
7.5.6 新式类的其他特性\t131
7.5.7 super类\t131
7.6 任务6 了解类的其他特性和功能\t132
7.6.1 抽象类和抽象方法\t132
7.6.2 动态定义类\t133
7.6.3 运算符重载\t134
7.6.4 子任务:链表的改进\t135
7.7 小结\t137
7.8 习题\t138
项目8 模块和程序打包\t139
8.1 任务1 熟悉模块的概念和用法\t139
8.1.1 定义模块\t139
8.1.2 导入模块\t140
8.1.3 导入和加载\t140
8.1.4 模块文件和关键变量\t140
8.1.5 模块的别名\t141
8.1.6 反射\t142
8.2 任务2 熟悉包的概念和用法\t143
8.2.1 如何使用包\t143
8.2.2 搜索路径与环境变量\t144
8.2.3 名称空间\t144
8.2.4 虚拟环境\t145
8.3 任务3 熟悉标准库的查询和帮助\t146
8.3.1 模块的查询\t146
8.3.2 拆解轮子\t146
8.4 任务4 了解标准库中常用的包和模块\t147
8.4.1 Python增强\t147
8.4.2 系统互动\t148
8.4.3 网络\t148
8.5 任务5 模块化程序设计:用户账户
登录(总体设计)\t149
8.5.1 设计目标\t149
8.5.2 程序结构\t149
8.6 任务6 模块:验证码的生成和校验
(实现)\t151
8.6.1 什么是验证码\t151
8.6.2 随机数和权重设置\t151
8.6.3 验证码功能的实现\t151
8.7 任务7 模块:创建新账户(实现)\t152
8.7.1 创建新账户的关键步骤\t152
8.7.2 输入字符时遮盖内容\t152
8.7.3 信息加密:hashlib模块\t153
8.7.4 创建新账户的实现\t154
8.8 任务8 模块:密码核对和锁定检测
(实现)\t155
8.8.1 功能设计\t155
8.8.2 功能实现\t155
8.9 任务9 用户登录系统主程序(实现)\t156
8.9.1 用户登录过程中的关键步骤\t157
8.9.2 主程序的实现\t157
8.10 任务10 程序打包和部署\t158
8.10.1 使用Distutils打包\t158
8.10.2 使用PyInstaller创建可执行
文件\t159
8.11 小结\t160
8.12 习题\t161
项目9 异常处理\t162
9.1 任务1 了解什么是异常\t162
9.1.1 异常和错误\t162
9.1.2 为什么要使用异常处理机制\t163
9.2 任务2 掌握异常的检测和处理\t163
9.2.1 常见的异常类型\t163
9.2.2 处理异常\t164
9.2.3 处理多个异常\t165
9.2.4 在单except子句中处理多个异常\t166
9.2.5 获取发生异常的原因\t166
9.2.6 捕获所有异常\t167
9.2.7 else子句\t168
9.2.8 finally子句\t168
9.2.9 单独的try...finally语句\t169
9.3 任务3 掌握处理异常的其他方法\t169
9.3.1 主动触发异常:raise语句\t169
9.3.2 封装内建函数\t170
9.3.3 自定义异常\t170
9.3.4 上下文管理:with语句\t172
9.3.5 断言:assert语句\t173
9.3.6 回溯最近发生的异常\t173
9.4 小结\t174
9.5 习题\t174
项目10 图形用户界面编程\t176
10.1 任务1 了解Python GUI编程的基本
概念\t176
10.1.1 常用的Python GUI工具介绍\t176
10.1.2 wxPython的安装\t177
10.1.3 关于帮助\t177
10.1.4 GUI程序设计的一般流程\t178
10.2 任务2 掌握GUI框架的设计\t179
10.2.1 使用wx.Frame创建框架\t179
10.2.2 理解应用程序对象的生命周期\t180
10.2.3 如何管理wxPython对象的ID号\t180
10.2.4 wx.Point和wx.Size\t181
10.2.5 创建窗口面板\t181
10.2.6 wx.Frame的样式设置\t181
10.3 任务3 掌握基本组件的使用\t182
10.3.1 静态文本框\t183
10.3.2 文本样式设置\t184
10.3.3 图片显示\t185
10.3.4 文本框\t185
10.3.5 按钮和事件驱动\t186
10.3.6 验证器\t188
10.4 任务4 掌握对话框的使用\t189
10.4.1 消息对话框\t190
10.4.2 文本输入对话框\t191
10.4.3 文件选择器对话框\t192
10.5 任务5 掌握菜单栏、工具栏和
状态栏\t193
10.5.1 菜单栏\t193
10.5.2 工具栏\t193
10.5.3 状态栏\t194
10.5.4 子任务:编写一个文本编辑器\t194
10.6 任务6 了解选择器类组件的使用\t200
10.6.1 单选按钮\t201
10.6.2 复选框\t202
10.6.3 列表框\t203
10.6.4 树形控件\t204
10.7 任务7 了解其他窗口组件\t205
10.7.1 选项卡\t205
10.7.2 静态框\t205
10.7.3 滚动条\t206
10.7.4 滑块\t207
10.7.5 微调控制器\t208
10.7.6 进度条\t209
10.8 任务8 界面管理和设计\t210
10.8.1 布局管理器\t210
10.8.2 界面生成工具\t211
10.9 小结\t213
10.10 习题\t213
项目11 与数据库交互\t214
11.1 任务1 了解数据库的概念\t214
11.1.1 关系型数据库\t214
11.1.2 结构化查询语言\t215
11.1.3 Python数据库API\t216
11.1.4 选择要使用的数据库\t217
11.2 任务2 熟悉在Python中操作SQLite\t217
11.2.1 SQLite简介\t217
11.2.2 SQLite的安装和配置\t218
11.2.3 sqlite3模块的使用\t218
11.2.4 SQLite基础应用:用户账户
信息\t219
11.3 任务3 熟悉在Python中操作MySQL\t221
11.3.1 MySQL简介\t222
11.3.2 MySQL获取和安装\t223
11.3.3 MySQL编码设置\t224
11.3.4 MySQL常见问题\t224
11.3.5 Python中的MySQL驱动\t226
11.3.6 mysql-connector/python的使用\t226
11.3.7 使用executemany()方法批量
插入数据\t227
11.3.8 导入海量数据\t228
11.4 小结\t231
11.5 习题\t231
项目12 网络编程\t232
12.1 任务1 了解网络编程基本知识\t232
12.1.1 计算机网络层次结构\t232
12.1.2 客户端/服务器架构模型\t233
12.1.2 套接字\t233
12.1.3 面向连接与无连接通信\t234
12.2 任务2 掌握基于套接字的网络编程\t235
12.2.1 socket模块及socket对象\t235
12.2.2 创建TCP服务器\t236
12.2.3 创建TCP客户端\t237
12.2.4 创建UDP服务器/客户端\t238
12.3 任务3 掌握服务器多并发功能的
实现\t239
12.3.1 socketserver模块\t239
12.3.2 创建支持多并发的服务器\t240
12.3.3 通过socketserver模块传输
文件\t241
12.4 小结\t243
12.5 习题\t244
项目13 多线程和多进程\t245
13.1 任务1 了解进程和线程的概念\t245
13.1.1 多道程序设计和对称多处理\t245
13.1.2 进程\t246
13.1.3 线程\t247
13.2 任务2 掌握Python中的多线程编程\t248
13.2.1 threading模块简介\t248
13.2.2 守护线程\t249
13.2.3 抢占和释放CPU\t250
13.3 任务3 了解多线程有关的高级话题\t251
13.3.1 线程与队列\t251
13.3.2 子任务:生产者-消费者问题\t251
13.3.3 线程锁、临界资源和互斥\t253
13.3.4 死锁\t254
13.3.5 信号量\t255
13.3.6 全局解释器锁\t256
13.4 任务4 掌握Python中的多进程编程\t257
13.4.1 multiprocessing模块简介\t257
13.4.2 Process类\t258
13.4.3 跨进程全局队列\t259
13.4.4 Value和Array类\t260
13.4.5 Manager类\t261
13.4.6 进程池\t261
13.4.7 异步和同步\t262
13.4.8 再论多进程和多线程\t263
13.5 小结\t264
13.6 习题\t265
项目14 数据分析\t266
14.1 任务1 了解NumPy及NumPy数组\t266
14.1.1 NumPy的安装\t266
14.1.2 NumPy数组的创建方式及基本
特性\t267
14.1.3 NumPy数据类型\t268
14.1.4 多维数组及修改形状\t270
14.1.5 花式索引\t272
14.1.6 数据边界约束\t273
14.2 任务2 掌握NumPy中的数学相关
方法\t273
14.2.1 特殊数组\t273
14.2.2 随机数工具\t276
14.2.3 数组的算术操作\t277
14.2.4 数学函数\t279
14.2.5 NumPy的输入和输出\t281
14.3 任务3 掌握Pandas的使用\t283
14.3.1 什么是Pandas\t283
14.3.2 Series的使用\t284
14.3.3 DataFrame的创建和访问\t285
14.3.4 数据操作\t287
14.3.5 数据计算\t289
14.3.6 数据排序\t290
14.3.7 数据统计分析\t291
14.3.8 数据相关性分析\t292
14.4 任务4 了解Matplotlib数据可视化\t294
14.4.1 数据可视化的基本概念\t294
14.4.2 Matplotlib的基本使用\t295
14.4.3 数据图形中的文本设置\t298
14.4.4 子绘图区域\t299
14.4.5 图表绘制函数\t301
14.5 小结\t304
14.6 习题\t305