本书内容涵盖了Python核心编程技术的主要方面,包括Python语言的基础知识、结构化程序设计方法、常用组合数据类型,还重点介绍了6方面的内容:① 软件系统开发三层式结构的原理,JSON文件、XML文件的格式及使用,MySQL数据库及PyMySQL库的使用、MongoDB数据库及PyMongo库的使用;② 函数式编程及偏函数、高阶函数、闭包和装饰器的使用;③ Python模块化编程思想,自定义库、标准库的使用,sys库、随机函数库、日期和时间库、正则表达式库等典型第三方库的安装和使用;④ 面向对象的编程思想及封装、继承、多态的概念;⑤ 网络编程;⑥ 典型应用场景介绍。 本书有300多个小例子,贴近生活,简单易懂,还包括多个综合实例。本书内容丰富,兼顾了广度和深度,低门槛,高输出,既照顾到零基础的初学者,也关注有较高编程目标的信息类学生。 本书适合作为各类大专院校计算机及相关专业学生的教材,也可作为对Python感兴趣的科技人员、计算机爱好者及各类自学人员的参考书。
谢红霞,女,浙大城市学院教师,长期从事计算机基础教学,主讲课程《大学计算机应用基础》《Python程序设计基础》《Python数据分析基础》等,多次荣获学校教学比赛奖和教学质量奖。积极开展教学研究工作,主持浙江省高等教育教学改革研究项目"基于计算思维的大学计算机课程教学改革及研究,主持浙江省高等教育课堂教学改革研究项目"基于多级任务驱动的《ACCESS数据库应用》课堂教学改革,主持教育部产学合作协同育人项目"案例驱动的Python数据分析课程教学设计。
目 录
绪论 1
0.1 Python入门简介 1
0.2 Python运行模式 4
0.3 虚拟环境 7
0.4 开发工具 8
习题 13
实验 14
实验0.1 在Windows操作系统中安装Python运行环境 14
实验0.2 Python环境下的三种运行模式 15
实验0.3 创建虚拟环境 16
第1章 Python语法基础 17
1.1 基础语法 17
1.2 基本输入和输出 19
1.3 变量的声明和使用 22
1.4 数值类型 25
1.4.1 数值型数据类型 25
1.4.2 内置数值型函数 27
1.4.3 算术运算符 28
1.5 布尔类型 29
1.6 比较运算符 32
1.7 字符串类型 32
1.7.1 字符串的表示和访问 32
1.7.2 字符串的运算和内置函数 34
1.7.3 字符串常用方法 37
1.7.4 格式化字符串 41
1.8 身份和成员运算符 45
1.9 二进制和位运算符 46
习题 48
实验 51
实验1.1 输出Python保留关键字 51
实验1.2 多行语句的实现方式 51
实验1.3 编写单行和多行注释 52
实验1.4 实现控制台输入和输出 52
实验1.5 用sys.stdin实现输入重定向 52
实验1.6 用sys.stdout实现输出重定向 53
实验1.7 规范地定义并使用变量 53
实验1.8 查看变量的类型 53
实验1.9 变量赋值和删除 54
第2章 程序流程控制 55
2.1 程序基本控制结构 55
2.2 简单分支结构 56
2.3 复杂分支结构 58
2.4 while循环 61
2.5 for循环 63
2.6 循环嵌套和循环控制 64
2.7 聊天机器人的实现思路 67
2.8 聊天机器人的实现代码 69
习题 71
实验 73
实验2.1 单分支结构 73
实验2.2 双分支结构 74
实验2.3 多分支结构 74
实验2.4 使用分支嵌套实现用户登录验证 75
实验2.5 使用分支嵌套实现公园门票折扣计算 76
实验2.6 多级分支嵌套语句的分离 77
实验2.7 简单分支语句组的应用 77
第3章 常用组合数据类型 79
3.1 列表类型 79
3.2 列表操作 82
3.3 元组类型 88
3.4 字典类型 90
3.5 字典操作 92
3.6 集合类型 95
3.7 集合常见应用 97
3.8 推导式 100
3.9 生成器和迭代器 104
习题 106
实验 109
实验3.1 常见列表运算 109
实验3.2 字典操作常用函数 111
实验3.3 列表浅拷贝和深拷贝 113
第4章 简单应用实例 115
4.1 软件开发分层架构 115
4.2 JSON格式预定义 119
4.3 PyMySQL数据库读取 121
4.4 MongoDB简介 125
4.5 人脸识别实现思路 129
4.6 人脸识别实现代码 132
4.7 项目打包和发布 136
习题 137
实验 138
实验4.1 用JSON描述出版社和图书列表 138
实验4.2 人脸识别技术代码 143
实验4.3 用PyInstaller打包数据 148
第5章 函数 150
5.1 用户自定义函数 150
5.2 函数实参传递 153
5.3 函数不定长参数 157
5.4 函数调用和嵌套 161
5.5 变量的作用域 164
5.6 偏函数和高阶函数 170
5.7 匿名函数 174
5.8 递归函数 179
5.9 闭包 181
5.10 装饰器 185
习题 189
实验 191
实验5.1 定义和使用函数 191
实验5.2 lambda表达式中各种类型参数的使用 194
实验5.3 lambda表达式在推导式中的使用 196
实验5.4 lambda表达式应用在函数式编程中 198
实验5.5 使用装饰器实现日志应用 199
第6章 常用模块 201
6.1 Python程序的构成 201
6.2 模块的安装和使用 202
6.3 sys模块 206
6.4 随机数模块 208
6.5 日期和时间模块 213
6.6 JSON模块 218
6.7 JSON模块案例 220
6.8 正则表达式模块 223
习题 231
实验 231
实验6.1 常见模块函数 231
实验6.2 生成随机验证码 233
实验6.3 随机数模块的常用函数 234
第7章 面向对象程序设计 239
7.1 类和对象 239
7.2 属性和方法 242
7.3 访问限制 246
7.4 属性管理器 250
7.5 封装和继承 253
7.6 函数重写 258
7.7 运算符重载 263
7.8 多态和枚举类 267
习题 271
实验 273
实验7.1 定义类型并创建对象实例 273
实验7.2 实例属性和方法的调用 274
实验7.3 通过多态实现二元运算 277
第8章 网络编程 280
8.1 网络编程TCP 280
8.2 网络编程UDP 284
8.3 网络编程SocketServer 288
8.4 多线程 293
8.5 线程锁 298
8.6 文件IO 303
8.7 Pathlib库 306
习题 311
实验 313
实验8.1 网络编程TCP 313
实验8.2 网络编程UDP 316
实验8.3 实现SocketServer服务器端 320
第9章 应用开发 326
9.1 Turtle图形绘制 326
9.2 Excel文件读写 331
9.3 异常处理 336
9.4 软件测试概述 339
9.5 单元测试和文档测试 340
9.6 用Smtplib模块发送邮件 344
9.7 用Poplib模块收取邮件 345
9.8 PyGame小程序 348
习题 349
实验 350
实验9.1 用Turtle绘制图形 350
实验9.2 用Smtplib模块发送邮件 353
实验9.3 用Poplib模块收取邮件 357
实验9.4 用PyGame模块创建游戏窗体 363