本书将Python程序设计的知识按由易到难、由浅入深的规律精心设计为12个教学单元(模块),包括程序开发环境构建与数据输入输出、基本数据类型与运算符应用、逻辑运算与流程控制、序列数据与正则表达式操作、函数应用与模块化程序设计、类定义与使用、文件操作与异常处理、数据库访问与使用、网络编程与进程控制、基于GUI框架的图形界面设计与网络爬虫应用、基于Flask框架的Web程序设计、基于Django框架的Web程序设计。每个单元的理论知识分为3个层次:入门知识、必修知识、拓展知识,拓展知识主要以电子活页方式呈现。每个单元的实践操作也分为3个层次:简单练习、实例训练、任务训练,任务训练涉及的代码主要以电子活页方式呈现。本书构建了Python程序设计的在线测试题库,每个教学单元针对重要的知识点与技能点设置有多道习题。
本书适合作为高职高专院校Python程序设计课程的教材,也可供对Python程序设计感兴趣的读者自学参考。
1.湖南铁道职院陈承欢教授新书,列入高职高专名校名师精品十三五规划教材。
2.本书为任务式,内容设计有层次,可以在线学习,适合高职高专教学需要。
3.配套训练题库丰富,难易结合,充分考虑不同类型读者的使用需要。
4.配套全套微课。
陈承欢,三级教授,高级工程师,软件设计师,湖南省省级专业带头人,湖南省青年骨干教师,武汉大学软件工程专业。2008年,曾赴澳大利亚坎培门理工学院培训交流,2015年,曾赴加拿大圣力嘉学院培训交流,2019年,曾赴英国、德国学习交流。主持开发职业教育特色教材50多本国家精品课程与国家精品共享课程配套教材1本,国家职业教育资源库配套教材3本。主持《网页设计与制作》国家精品课程,主持《网页设计与制作》国家精品共享课程,主持《计算机维护与维修》、《实用工具软件应用》、《网页样式设计》3门国家资源库课程。
单元1 程序开发环境构建与数据输入输出 1
知识入门 1
循序渐进 3
1.1 搭建Python开发环境与使用IDLE编写Python程序 3
1.1.1 搭建Python开发环境 3
1.1.2 使用IDLE编写简单的Python程序 5
【任务1-1】输出Happy to learn Python Programming的信息 6
1.2 测试PyCharm开发环境与编写简单的Python程序 7
1.2.1 测试PyCharm开发环境 7
1.2.2 编写简单的Python程序 14
【任务1-2】输出你好,请登录 17
1.3 Python程序的基本组成 19
1.3.1 Python程序的基本要素 19
1.3.2 Python程序的注释 20
【任务1-3】编写程序计算并输出金额 21
1.4 print()函数的基本用法 21
1.5 input()函数的基本用法 23
【任务1-4】编写程序,模拟实现秒杀界面的文字内容 23
【任务1-5】模拟以表格方式输出商品数据列表 24
知识拓展 24
单元2 基本数据类型与运算符应用 25
知识入门 25
循序渐进 27
2.1 Python 3的数据类型 27
2.1.1 Python 3基本数据类型 27
2.1.2 Python 3的数值类型 27
2.1.3 Python 3数据类型的判断 28
2.1.4 Python数据类型的转换 28
2.2 Python的算术运算符及其应用 29
2.2.1 Python算术运算符和运算优先级 29
2.2.2 Python算术表达式 30
2.3 Python的赋值运算符与变量 31
2.3.1 Python的赋值运算符 31
2.3.2 变量定义和赋值 32
2.3.3 使用del语句删除对象引用 34
【任务2-1】计算并输出购买商品的实付总额与平均价格等数据 34
2.4 Python 3的日期时间函数 35
2.4.1 时间元组 35
2.4.2 time模块 36
2.4.3 datetime模块 37
【任务2-2】输出当前日期和时间 38
【任务2-3】计算与输出购买商品的实付总额等数据 39
知识拓展 39
单元3 逻辑运算与流程控制 41
知识入门 41
循序渐进 42
3.1 Python的比较运算符及其应用 42
3.1.1 Python的比较运算符与比较表达式 42
3.1.2 逻辑值测试 42
【任务3-1】应用比较运算符设置查询条件表达式 43
3.2 Python的逻辑运算符及其应用 44
3.2.1 Python的逻辑运算符与逻辑表达式 44
3.2.2 Python运算符优先级 44
【任务3-2】应用比较运算符与逻辑运算符设置条件表达式 46
3.3 Python的选择结构及其应用 46
3.3.1 if语句及其应用 47
【任务3-3】应用if语句实现用户登录 48
3.3.2 if…else语句及其应用 48
【任务3-4】应用if…else语句实现用户登录 49
3.3.3 if…elif…else语句及其应用 49
【任务3-5】应用if…elif…else语句计算分期付款的服务费 50
3.3.4 if语句的嵌套结构 51
【任务3-6】应用if选择语句计算网上购物的运费与优惠金额等 52
【任务3-7】应用if选择语句验证用户名和密码实现登录 53
3.4 for循环语句及其应用 53
3.4.1 for循环语句 54
3.4.2 for…else语句 55
【任务3-8】应用for循环语句显示进度的百分比 56
3.5 while循环语句及其应用 56
3.5.1 while循环语句 57
3.5.2 while…else语句 57
3.5.3 循环中的跳转语句 58
【任务3-9】应用while循环语句实现网上抢购倒计时功能 61
【任务3-10】综合应用循环结构的嵌套结构实现倒计时功能 61
知识拓展 62
单元4 序列数据与正则表达式操作 63
知识入门 63
循序渐进 66
4.1 列表的创建与应用 66
4.1.1 创建列表 66
4.1.2 访问列表元素 67
4.1.3 截取列表 68
4.1.4 连接与重复列表 69
4.1.5 修改与添加列表元素 70
4.1.6 删除列表元素 71
4.1.7 列表运算符 71
4.1.8 列表的内置函数与基本方法 72
【任务4-1】遍历列表 74
4.2 元组的创建与应用 74
4.2.1 创建元组 74
4.2.2 访问元组元素 76
4.2.3 截取元组 76
4.2.4 连接与重复元组 76
4.2.5 修改元组元素 77
4.2.6 删除元组元素 78
4.2.7 元组运算符 78
4.2.8 元组的内置函数与基本方法 78
【任务4-2】遍历元组 80
4.3 字典的创建与应用 80
4.3.1 创建字典 80
4.3.2 访问字典的值 82
4.3.3 修改与添加字典的值 83
4.3.4 删除字典元素 83
4.3.5 字典的内置函数与基本方法 84
【任务4-3】遍历字典 85
【任务4-4】综合应用列表、元组、字典输出商品信息与商品详情 86
4.4 集合的创建与应用 86
4.4.1 创建集合 86
4.4.2 修改与添加集合的元素 87
4.4.3 删除集合元素 88
4.4.4 集合的内置函数与基本方法 89
4.4.5 集合运算 91
【任务4-5】遍历集合 91
4.5 字符串的常用方法及其应用 92
4.5.1 创建字符串 92
4.5.2 访问字符串中的值 92
4.5.3 截取字符串 93
4.5.4 连接与重复字符串 94
4.5.5 修改与添加字符串中的字符 95
4.5.6 字符串运算符 96
4.5.7 字符串常用的内置函数与基本方法 96
【任务4-6】应用字符串的方法实现字符串翻转操作 100
4.6 字符串的格式化输出 100
4.6.1 format()的基本格式 101
4.6.2 format()方法的参数序号 101
【任务4-7】使用format()方法格式化输出字符串列表 102
4.7 正则表达式及其应用 102
4.7.1 Python的正则表达式 102
4.7.2 模式字符串的组成字符 103
4.7.3 re模块的贪婪匹配和小匹配 104
4.8 使用re模块实现正则表达式操作 105
4.8.1 re模块及其主要功能函数 105
4.8.2 re.compile()函数与正则表达式对象 111
【任务4-8】验证E-mail地址的有效性 112
【任务4-9】应用正则表达式检测密码是否符合设定的规则和判断密码的强度等级 113
知识拓展 113
单元5 函数应用与模块化程序设计 115
知识入门 115
循序渐进 116
5.1 Python数学函数的应用 116
5.1.1 Python数学常量 116
5.1.2 Python常用数学运算函数 116
【任务5-1】编写程序绘制爱心 117
5.2 Python函数的定义与调用 118
5.2.1 定义函数 118
5.2.2 调用函数 119
【任务5-2】应用日期时间函数实现倒计时功能 120
【任务5-3】定义函数计算总金额、优惠金额和实付金额等 121
5.3 Python函数参数 121
5.3.1 Python函数的参数传递 121
5.3.2 Python函数参数类型 123
【任务5-4】自定义函数应用多种方法对齐输出图书数据 128
5.4 函数变量的作用域 129
5.5 Python的模块创建与导入 130
5.5.1 创建模块 130
5.5.2 导入模块 131
5.5.3 导入与使用Python的标准模块 134
5.5.4 使用内置函数dir() 135
5.5.5 __name__属性与以主程序的形式执行 135
【任务5-5】编写程序自定义模块与函数格式输出商品信息 136
5.6 Python中创建与使用包 136
5.6.1 创建包 137
5.6.2 使用包 138
知识拓展 139
单元6 类定义与使用 144
知识入门 144
循序渐进 147
6.1 创建类及其对象 147
6.1.1 定义类 147
6.1.2 创建类的实例 147
6.2 类属性与实例属性 148
6.3 实例方法、类方法与静态方法 151
6.3.1 实例方法 151
6.3.2 类方法 152
6.3.3 静态方法 153
【任务6-1】定义商品类及其成员 153
【任务6-2】修改与访问类属性、建立实例属性 155
【任务6-3】定义与访问类的实例方法 158
【任务6-4】定义与访问类方法、实例方法和静态方法 158
6.4 类的构造方法与析构方法 159
6.4.1 类的构造方法 159
6.4.2 类的析构方法 161
【任务6-5】定义与调用类的构造方法 161
6.5 类的继承与方法重写 162
6.5.1 类的继承 163
6.5.2 方法继承 165
6.5.3 方法重写 165
【任务6-6】定义类Commodity和子类Book及其数据成员 165
6.6 命名空间与类成员的访问限制 167
6.6.1 Python 3的命名空间和作用域 167
6.6.2 类成员的访问限制 172
【任务6-7】完整定义与使用1个父类(Commodity)和2个子类(Book、Handset) 176
知识拓展 178
单元7 文件操作与异常处理 180
知识入门 180
循序渐进 183
7.1 打开与关闭文件 183
7.1.1 使用open()方法打开文件 183
7.1.2 使用close()方法关闭文件 184
7.1.3 打开文件时使用with语句 185
7.2 读取与写入文件内容 185
7.2.1 文件对象 185
7.2.2 移动文件的当前位置 186
7.2.3 读取文件 186
7.2.4 向文件中写入内容 188
【任务7-1】打开并读取文件的全部行 189
【任务7-2】实现文件内容的写入与读取 190
【任务7-3】以二进制形式打开文件并读取其内容 191
【任务7-4】通过移动文件指针的方法读取指定字符 191
7.3 创建与操作文件、文件夹 192
7.3.1 创建文件夹 192
7.3.2 针对文件夹的操作 193
7.3.3 创建文件 195
7.3.4 针对文件的操作 195
【任务7-5】以多种方式创建文件夹与文件 196
7.4 删除文件和文件夹 197
7.4.1 删除文件 197
7.4.2 删除文件夹 197
【任务7-6】以多种方式删除文件夹与文件 198
【任务7-7】实现文件复制、重命名、信息输出功能 199
7.5 异常处理语句 199
7.5.1 try…except语句 199
7.5.2 try…except…else语句 201
7.5.3 try…except…finally语句 202
7.5.4 使用raise语句抛出异常 203
知识拓展 204
单元8 数据库访问与使用 205
知识入门 205
循序渐进 206
8.1 创建与使用SQLite数据表 206
8.1.1 创建SQLite数据库文件与数据表 206
8.1.2 操作SQLite数据库 207
【任务8-1】创建、新增、查询、删除SQLite数据表 210
【任务8-2】查询、更新、删除用户数据表中的数据 211
8.2 创建与使用MySQL数据表 212
8.2.1 连接MySQL数据库 212
8.2.2 创建MySQL数据表 213
8.2.3 MySQL数据表插入操作 214
8.2.4 MySQL数据表查询操作 215
8.2.5 MySQL数据表更新操作 216
8.2.6 MySQL数据表删除操作 216
【任务8-3】创建books数据表并显示数据表的结构信息 217
【任务8-4】在books数据表中批量添加多条记录 217
【任务8-5】自定义函数实现MySQL数据表新增、修改、删除与查询的综合操作 218
知识拓展 218
单元9 网络编程与进程控制 220
知识入门 220
循序渐进 222
9.1 认知Socket 222
9.2 创建TCP服务器程序与客户端程序 225
【任务9-1】实现客户端与服务器之间通信 228
【任务9-2】TCP服务器与客户端之间传输字符串数据 230
9.3 创建UDP服务器程序和客户端程序 231
【任务9-3】建立UDP通信获取客户购物数量 232
9.4 创建与使用进程 234
9.4.1 使用multiprocessing模块的Process类创建进程 234
9.4.2 使用Process子类创建进程 235
9.4.3 验证进程之间能否直接共享数据 236
9.5 创建与使用线程 237
9.5.1 Python 3的多线程 237
9.5.2 Python 3支持的线程模块 237
9.5.3 Python中使用线程的方式 238
9.5.4 验证线程之间能否直接共享数据 240
【任务9-4】使用多线程模拟生成与读取日志文件 241
知识拓展 242
单元10 基于GUI框架的图形界面设计与网络爬虫应用 244
知识入门 244
循序渐进 245
10.1 使用wxPython框架设计图形用户界面 245
10.1.1 直接使用wx.App类创建可视化窗口 245
10.1.2 wx.Frame框架 245
10.1.3 wxPython的常用控件 246
10.1.4 BoxSizer布局 249
10.1.5 事件处理 251
【任务10-1】使用wxPython框架结合SQLite3数据库设计图形用户登录界面 251
10.2 使用PyQt5框架设计图形用户界面 254
【任务10-2】在窗口的QListView控件中显示销量前10名的图书名称列表 257
【任务10-3】窗口中以表格方式展示计算机与互联网图书销量排行榜 258
10.3 Python网络爬虫 259
10.3.1 Python爬虫获取数据的基本流程 259
10.3.2 robots协议 259
10.3.3 网络爬虫引发的问题 259
【任务10-4】网络图片抓取和存储 260
知识拓展 260
单元11 基于Flask框架的Web
程序设计 262
知识入门 262
循序渐进 263
11.1 创建与运行Flask程序 263
11.1.1 在PyCharm中创建Flask项目 263
11.1.2 创建简单的Flask程序 264
11.1.3 开启调试模式 265
11.2 路由 266
11.2.1 访问路径 266
11.2.2 路径变量 266
11.2.3 构造URL 267
11.2.4 HTTP方法 268
11.3 静态文件与模板生成 268
11.3.1 静态文件 268
11.3.2 Flask模板生成 269
【任务11-1】在网页中显示文本信息与展示图片 270
【任务11-2】基于Flask框架设计简单用户登录程序 273
知识拓展 274
单元12 基于Django框架的Web程序设计 277
知识入门 277
循序渐进 279
12.1 创建Django项目与App应用程序 279
12.1.1 在PyCharm中创建Django项目 279
12.1.2 在settings.py文件中对Django项目进行多项配置 282
12.1.3 在Django项目中创建App应用程序 284
12.2 Django模板 286
【任务12-1】基于Django框架设计简单用户登录程序 287
【任务12-2】基于Django框架设计图书数据和详情数据
展示程序 289
知识拓展 293
参考文献 296