Python优雅、简洁,有大量的标准库模块,并且支持数量众多的第三方库,可供科学计算、数据分析、人工智能等相关行业的人员学习和研究,对学科交叉应用也很有帮助。本书分为两部分:教学篇和实验篇。教学篇共15章,内容包括Python入门,Python基础,程序设计结构,组合数据,函数,面向对象程序设计,模块、包和库,正则表达式,文件访问,异常处理和单元测试,数据库访问,图形用户界面编程,多进程与多线程,网络程序设计,Python与人工智能;书中内容以程序设计应用为导向,突出使用Python解决实际问题的方法和能力训练。实验篇包括与各章知识对应的实验内容,通过实验培养学生使用Python解决实际问题的编程能力。本书完全面向Python 3.X,全部案例在Python 3.7.2和PyCharm 2018 Professional 3.5环境中编写、测试。除基本案例外,教学篇在各章(不包括第1章)中都精选和安排了与实际结合紧密的典型案例,让读者既可以通过基本案例学到Python基础知识和使用方法,又可以通过典型案例对所学知识进行综合练习和应用,进一步提高编程能力。本书可作为高等学校计算机程序设计课程的教材,也可供Python从业者学习和作为工具书使用。
王雷春,武汉大学计算机专业博士,湖北大学计算机与信息工程学院副教授,先后主持和参与多项国家863项目、国家自然科学基金、省部级基金课题和横向项目。负责校Python程序设计、Java、VB、数据库应用技的教学工作。
目 录
第1部分 教 学 篇
第1章 Python入门
1.1 概述
1.1.1 Python简介
1.1.2 Python的特点
1.1.3 Python的应用
1.2 开发环境
1.2.1 Python版本
1.2.2 常用开发环境
1.2.3 Python下载和安装
1.2.4 PyCharm下载和安装
1.2.5 第三方库安装
1.3 程序开发
1.3.1 程序运行方式
1.3.2 使用Python自带工具开发Python程序
1.3.3 使用PyCharm开发Python程序
1.4 程序结构和编码规范
1.4.1 文件类型
1.4.2 代码结构
1.4.3 程序编码规范
1.5 输入、输出函数
1.5.1 input()函数
1.5.2 print()函数
练习题1
第2章 Python基础
2.1 数据类型
2.2 数字类型
2.2.1 整型
2.2.2 浮点类型
2.2.3 复数类型
2.2.4 布尔类型
2.2.5 数字类型转换
2.2.6 分数和高精度实数
2.2.7 常用数学函数
2.3 字符串类型
2.3.1 字符串及创建
2.3.2 字符串访问
2.3.3 字符串运算
2.3.4 字符串函数
2.3.5 转义字符
2.4 常量和变量
2.4.1 常量
2.4.2 变量
2.5 运算符和表达式
2.5.1 常用运算符和表达式
2.5.2 运算符优先级
2.5.3 补充说明
2.6 特殊内置函数
2.6.1 内置函数简介
2.6.2 特殊内置函数
2.7 程序调试
2.7.1 错误类型
2.7.2 使用Python自带的Shell工具进行程序调试
2.7.3 在PyCharm中调试程序
2.8 典型案例
2.8.1 计算复杂算术运算表达式的值
2.8.2 求几何面、几何体的(表)面积或体积
2.8.3 解一元二次方程
2.8.4 验证码验证
练习题2
第3章 程序设计结构
3.1 概述
3.2 顺序结构
3.3 选择结构
3.3.1 单分支结构
3.3.2 二分支结构
3.3.3 多分支结构
3.3.4 条件运算
3.3.5 选择结构嵌套
3.4 循环结构
3.4.1 while语句
3.4.2 for语句
3.4.3 break、continue和pass语句
3.4.4 循环结构的嵌套
3.5 典型案例
3.5.1 计算部分级数和
3.5.2 使用选择结构计算员工工资
3.5.3 用递推法求解实际问题
3.5.4 “试凑法”解方程
3.5.5 计算机猜数
3.5.6 模拟自动饮料机
练习题3
第4章 组合数据
4.1 概述
4.2 列表
4.2.1 列表创建
4.2.2 列表访问
4.2.3 列表复制和删除
4.2.4 列表运算
4.2.5 列表统计
4.2.6 列表查找与排序
4.3 元组
4.3.1 元组创建
4.3.2 元组访问
4.3.3 元组复制和删除
4.3.4 元组运算
4.3.5 元组统计
4.4 字典
4.4.1 字典创建
4.4.2 字典访问
4.4.3 字典复制和删除
4.5 集合
4.5.1 集合创建
4.5.2 集合访问
4.5.3 集合复制和删除
4.5.4 集合运算
4.5.5 集合统计
4.6 嵌套组合数据
4.7 典型案例
4.7.1 查找
4.7.2 排序
4.7.3 推导式
4.7.4 列表作为堆栈和队列使用
4.7.5 基于组合数据的游戏角色管理
练习题4
第5章 函数
5.1 函数定义和调用
5.1.1 函数定义
5.1.2 函数调用
5.2 函数参数
5.2.1 参数传递
5.2.2 参数类型
5.2.3 参数传递的序列解包
5.3 特殊函数
5.3.1 匿名函数
5.3.2 递归函数
5.3.3 嵌套函数
5.4 装饰器
5.4.1 装饰器的定义和调用
5.4.2 带参数的装饰器
5.5 变量作用域
5.6 典型案例
5.6.1 加密和解密
5.6.2 求最大公约数
5.6.3 使用装饰器检查函数参数合法性
5.6.4 模拟轮盘抽奖游戏
练习题5
第6章 面向对象程序设计
6.1 概述
6.2 类与对象
6.2.1 类的定义
6.2.2 对象创建和使用
6.3 类的成员
6.3.1 成员类型
6.3.2 内置成员
6.4 类的方法
6.4.1 类的方法类型
6.4.2 属性
6.4.3 特殊方法
6.5 类的继承与多态
6.5.1 类的继承
6.5.2 类的多态
6.6 抽象类和抽象方法
6.7 典型案例——书籍出租管理系统
练习题6
第7章 模块、包和库
7.1 概述
7.2 常用标准库模块
7.2.1 Turtle模块
7.2.2 Random模块
7.2.3 Time模块和Datetime模块
7.2.4 Os模块
7.2.5 Sys模块
7.2.6 Timeit模块
7.2.7 Zlib模块
7.3 常用第三方库
7.3.1 NumPy库
7.3.2 Pandas库
7.3.3 SciPy库
7.3.4 Matplotlib库
7.3.5 Jieba库
7.3.6 Pyinstaller库
7.4 自定义模块
7.5 典型案例
7.5.1 使用Turtle绘制表面填充正方体
7.5.2 使用NumPy和Matplotlib分析股票
7.5.3 使用Pandas分析股票交易数据
7.5.4 使用图像处理库处理和显示图像
练习题7
第8章 正则表达式
8.1 概述
8.2 正则表达式语法
8.3 使用正则表达式模块处理字符串
8.3.1 Re模块中的常用函数
8.3.2 常用正则表达式
8.4 典型案例
8.4.1 提取并汇总字符串中的费用
8.4.2 校验字符串合法性
8.4.3 解析网页内容
练习题8
第9章 文件访问
9.1 概述
9.2 文本文件访问
9.2.1 打开文件
9.2.2 文件操作
9.3 二进制文件访问
9.3.1 使用Pickle模块读/写二进制文件
9.3.2 使用Struct模块读/写二进制文件
9.3.3 使用Marshal模块读/写二进制文件
9.3.4 使用Shelve模块读/写二进制文件
9.4 典型案例
9.4.1 合并文件
9.4.2 CSV文件操作
练习题9
第10章 异常处理和单元测试
10.1 异常类和异常处理
10.1.1 异常和异常类
10.1.2 异常处理
10.1.3 断言语句
10.2 单元测试
10.3 典型案例
10.3.1 自定义异常类
10.3.2 自定义测试类
练习题10
第11章 数据库访问
11.1 概述
11.2 常用关系数据库访问
11.2.1 常用关系数据库简介
11.2.2 Python DB-API规范
11.2.3 典型案例——访问关系数据库
11.3 非关系数据库访问
11.3.1 MongoDB
11.3.2 典型案例——访问MongoDB
练习题11
第12章 图形用户界面编程
12.1 wxPython库简介
12.2 事件处理
12.3 常用控件
12.3.1 窗体
12.3.2 按钮、标签和文本框
12.3.3 单选按钮、复选框
12.3.4 列表框、组合框
12.3.5 菜单
12.3.6 工具栏、状态栏
12.3.7 对话框
12.4 布局
12.4.1 布局及其类型
12.4.2 wx.BoxSizer
12.4.3 wx.GridSizer
12.5 典型案例——专利管理系统
练习题12
第13章 多进程与多线程
13.1 Python中的多进程
13.1.1 进程的含义
13.1.2 创建进程
13.1.3 进程通信
13.1.4 进程同步
13.2 Python中的多线程
13.2.1 线程含义
13.2.2 创建线程
13.2.3 线程通信
13.2.4 线程同步
13.3 典型案例
13.3.1 使用多进程导入/导出数据
13.3.2 使用多线程模拟彩票发行
练习题13
第14章 网络程序设计
14.1 网络协议
14.1.1 互联网协议族
14.1.2 TCP/IP
14.2 套接字(Socket)编程
14.2.1 套接字简介
14.2.2 基于TCP的套接字编程
14.2.3 基于UDP的套接字编程
14.3 Web编程
14.3.1 Web编程概述
14.3.2 Django
14.4 典型案例
14.4.1 简单嗅探器
14.4.2 多线程端口扫描
14.4.3 用网络爬虫爬取全国城市天气信息
14.4.4 基于Django的个人博客
练习题14
第15章 Python与人工智能
15.1 概述
15.1.1 人工智能简介
15.1.2 Python与人工智能
15.2 机器学习
15.2.1 Sklearn
15.2.2 典型案例——使用线性回归模型训练、测试和预测数据
15.3 深度学习
15.3.1 TensorFlow
15.3.2 典型案例——识别模糊的手写数字图片
练习题15
第2部分 实 验 篇
实验1 Python入门
一、实验目的
二、实验内容
实验2 Python基础
一、实验目的
二、实验内容
实验3 程序设计结构
一、实验目的
二、实验内容
实验4 组合数据
一、实验目的
二、实验内容
实验5 函数
一、实验目的
二、实验内容
实验6 面向对象程序设计
一、实验目的
二、实验内容
实验7 模块、包和库
一、实验目的
二、实验内容
实验8 正则表达式
一、实验目的
二、实验内容
实验9 文件访问
一、实验目的
二、实验内容
实验10 异常处理和单元测试
一、实验目的
二、实验内容
实验11 数据库访问
一、实验目的
二、实验内容
实验12 图形用户界面编程
一、实验目的
二、实验内容
实验13 多进程与多线程
一、实验目的
二、实验内容
实验14 网络程序设计
一、实验目的
二、实验内容
实验15 Python与人工智能
一、实验目的
二、实验内容
参考文献