篇入门
章了解Python
1.1了解Python的历史
1.2Python可以做什么
1.3Python在数据科学中的地位及前景
1.4如何使用本书
第2章配置机器及搭建开发环境
本章教学视频说明
2.1Python版本及开发环境介绍
2.1.1Python的运行方式
2.1.2常见的集成开发环境(IDE)
2.2下载及安装Anaconda
2.3熟悉Anaconda3开发工具
2.3.1快速了解Spyder
2.3.2快速了解JupyterNotebook
篇入门
章了解Python
1.1了解Python的历史
1.2Python可以做什么
1.3Python在数据科学中的地位及前景
1.4如何使用本书
第2章配置机器及搭建开发环境
本章教学视频说明
2.1Python版本及开发环境介绍
2.1.1Python的运行方式
2.1.2常见的集成开发环境(IDE)
2.2下载及安装Anaconda
2.3熟悉Anaconda3开发工具
2.3.1快速了解Spyder
2.3.2快速了解JupyterNotebook
2.4实例1:运行Python程序,并传入参数
2.4.1在Spyder中新建Python文件,编写代码,运行代码
2.4.2用命令行启动Python程序,并传入参数
2.4.3用Spyder启动Python程序,并传入参数
第3章语言规则——Python的条条框框
本章教学视频说明
3.1了解编程语言的分类
3.2基础规则
3.2.1了解Python源代码相关的几个概念
3.2.2语句的基本规则:变量、语句、代码块
3.2.3添加注释
3.2.4使用Python的“帮助”
3.3代码文件的结构
3.3.1模块
3.3.2包
3.4模块的详细介绍
3.4.1模块的作用及分类
3.4.2模块的基本使用方法
3.4.3模块的搜索路径
3.4.4模块的属性
3.4.5模块名字的可变性
3.4.6模块的常规写法
3.5模块的四种导入方式
3.5.1importas方式
3.5.2fromimport方式
3.5.3fromimport*方式
3.5.4导入文件名中带空格的模块
3.6实例2:封装获取系统信息的模块,并将其导入
3.6.1在当前代码中的函数与模块中的函数同名情况下,导入模块
3.6.2在模块与当前代码不在同一路径的情况下,导入模块
3.6.3导入上级路径的模块
第2篇进阶
第4章变量——编写代码的基石
本章教学视频说明
4.1什么是变量
4.2了解变量的规则
4.2.1明白变量的本质——对象
4.2.2同时定义多个变量
4.2.3变量类型介绍
4.2.4变量类型的帮助函数
4.3numbers(数字)类型
4.3.1获取对象的类型
4.3.2算术运算符
4.3.3实例3:演示“算术运算符”的使用
4.3.4赋值运算符
4.3.5实例4:演示“赋值运算符”的使用
4.3.6比较运算符
4.3.7实例5:演示“比较运算符”的使用
4.3.8慎用is函数
4.3.9实例6:演示Python的缓存机制
4.3.10布尔型关系的运算符
4.3.11位运算符
4.3.12实例7:演示“位运算符”的使用
4.4strings(字符串)类型
4.4.1字符串的描述
4.4.2转义符
4.4.3屏幕I/O及格式化
4.4.4实例8:以字符串为例,演示“序列”类型的运算及操作
4.4.5关于切片的特殊说明
4.4.6字符串的相关函数
4.5list(列表)类型
4.5.1list的运算及操作
4.5.2list的内置方法
4.5.3实例9:演示list使用中的技巧及注意事项
4.5.4列表嵌套
4.5.5实例10:使用list类型实现队列和栈
4.5.6实例11:使用函数filter筛选列表——筛选学生列表中的偏科学生名单
4.6tuple(元组)类型
4.6.1tuple的描述
4.6.2运算及操作
4.6.3实例12:演示tuple的用法
4.7set(集合)类型
4.7.1set的描述
4.7.2set的运算
4.7.3set的内置方法
4.7.4不可变集合
4.8dictionary(字典)类型
4.8.1字典的描述
4.8.2字典的运算
4.8.3字典的内置方法
4.9对组合对象进行“深拷贝”和“浅拷贝”
4.9.1浅拷贝
4.9.2深拷贝
第5章控制流——控制执行顺序的开关
本章教学视频说明
5.1if语句
5.1.1语句形式
5.1.2演示if语句的使用
5.1.3实例13:根据来访人的性别选择合适的称呼
5.2while语句
5.2.1语句形式
5.2.2演示while语句的使用
5.2.3实例14:将十进制数转化为二进制数
5.3for语句
5.3.1语句形式
5.3.2在for循环中,使用切片
5.3.3在for循环中,使用内置函数range
5.3.4实例15:利用循环实现冒泡排序
5.3.5在for循环中,使用内置函数zip
5.3.6在for循环中,使用内置函数enumerate
5.4对循环进行控制——break、continue、pass语句
5.5实例16:演示人机对话中的控制流程(综合应用前面语句)
5.6利用for循环实现列表推导式
5.7实例17:利用循环来打印“九九乘法表”
5.8理解for循环的原理——迭代器
第6章函数——功能化程序片段的封装
本章教学视频说明
6.1函数的基本概念
6.1.1函数的定义
6.1.2函数的组成部分
6.1.3函数的参数:形参与实参
6.1.4函数的返回值
6.1.5函数的属性
6.1.6函数的本质
6.1.7函数的分类
6.1.8实例18:打印两个心形图案
6.2定义参数及调用函数
6.2.1函数参数的定义方法与调用形式
6.2.2在函数调用中检查参数
6.2.3函数调用中的参数传递及影响
6.3匿名函数与可迭代函数
6.3.1匿名函数与可迭代函数的介绍
6.3.2匿名函数与reduce函数的组合应用
6.3.3匿名函数与map函数的组合应用
6.3.4匿名函数与filter函数的组合应用
6.3.5可迭代函数的返回值
6.4偏函数
6.5递归函数
6.6eval与exec函数
6.6.1eval与exec的区别
6.6.2eval与exec的定义
6.6.3exec和eval的使用经验
6.6.4eval与exec的扩展知识
6.7实例19:批量测试转化函数(实现“组合对象”与“字符串”的相互转化)
6.7.1编写两个功能函数
6.7.2编写单元测试用例
6.7.3批量运行单元测试用例
6.8生成器函数
6.8.1生成器与迭代器的区别
6.8.2生成器函数
6.8.3生成器表达式
6.9变量的作用域
6.9.1作用域介绍
6.9.2global语句
6.9.3nonlocal语句
6.10工厂函数
6.10.1普通工厂函数的实现
6.10.2闭合函数(closure)
6.10.3装饰器(decorator)
6.10.4@修饰符
6.10.5更不错的装饰器
6.10.6解决“同作用域下默认参数被覆盖”问题
第7章错误与异常——调教出听话的程序
本章教学视频说明
7.1错误的分类
7.1.1语法错误
7.1.2运行时错误
7.2异常的基本语法
7.2.1同时处理多个异常
7.2.2异常处理中的else语句
7.2.3输出未知异常
7.2.4输出异常的详细信息
7.3捕获与处理异常
7.3.1异常的处理流程
7.3.2try语句的工作原理
7.3.3一些常见的异常
7.4创建异常
7.4.1创建异常的方法
7.4.2创建异常举例
7.5异常的终处理(清理动作)
7.5.1finally的使用场景
7.5.2finally与else的区别
7.6判定条件的正确性(断言)
7.6.1断言的表达形式
7.6.2带错误信息的断言语句
7.7实例20:如HTTP请求失败,实现“重试”功能
7.7.1使用装饰器实现失败重试
7.7.2编写简单爬虫
7.7.3传入正确的目的地址,开始爬取
7.7.4传入错误的目的地址,验证“重试”功能
第8章文件操作——数据持久化的一种方法
本章教学视频说明
8.1文件的基本操作
8.1.1读写文件的一般步骤
8.1.2打开文件
8.1.3具体读写
8.1.4关闭文件
8.2文件对象的方法
8.2.1文件对象的常用方法介绍
8.2.2把文件对象当作迭代器来读取
8.3实例21:带有异常处理的文件操作
8.4使用with语句简化代码
8.4.1实例22:使用with语句操作文件
8.4.2with语法的原理
8.5实现字符串与二进制数的相互转化
8.5.1将字符串转二进制数
8.5.2将二进制数转字符串
8.6将任意对象序列化
8.6.1pickle函数
8.6.2实例23:用pickle函数实现元组与“二进制对象”“二进制对象文件”之间的转换
8.6.3序列化的扩展方法(ZODB模块)
8.7实例24:批量读取及显示CT医疗影像数据
8.7.1DICOM介绍
8.7.2Python中的DICOM接口模块
8.7.3编写代码以载入DICOM文件
8.7.4读取DICOM中的数值
8.7.5显示单张DICOM数据图像
8.7.6批量生成DICOM数据图像
第3篇高阶
第9章类——面向对象的编程方案
本章教学视频说明
9.1类的相关术语及实现
9.1.1创建类
9.1.2创建类属性
9.1.3定义类的动态属性
9.1.4限制类属性(__slots__)
9.2实例化类对象
9.2.1带有初始值的实例化
9.2.2class中的self
9.2.3类方法(@classmethod)与静态方法(@staticmethod)
9.2.4类变量与实例变量的区别
9.2.5销毁类实例化对象
9.3类变量的私有化类属性
9.3.1公有化(public)与私有化(private)
9.3.2私有化的实现
9.3.3使用装饰器技术实现类的私有化(@property)
9.4实现子类
9.4.1继承
9.4.2实例25:演示类的继承
9.4.3super函数
9.4.4实例26:演示super函数的功能
9.5类相关的常用内置函数
9.5.1判断实例(isinstance)
9.5.2判断子类(issubclass)
9.5.3判断类实例中是否含有某个属性(hasattr)
9.5.4获得类实例中的某个属性(getattr)
9.5.5设置类实例中的某个属性值(setattr)
9.6重载运算符
9.6.1重载运算符的方法与演示
9.6.2可重载的运算符
9.7包装与代理
9.7.1包装
9.7.2代理
9.7.3实例27:使用代理的方式实现RESTfulAPI接口
9.8自定义异常类
9.8.1自定义异常类的方法
9.8.2实例28:自定义异常类的多重继承与使用
9.9支持with语法的自定义类
9.9.1实现支持with语法的类
9.9.2实例29:代码实现自定义类,并使其支持with语法
9.10“自定义迭代器类”的实现与调试技巧
9.10.1实例30:自定义迭代器,实现字符串逆序
9.10.2调试技巧
9.11元类(MetaClass)
9.11.1Class的实现原理
9.11.2元类的介绍
0章系统调度——实现高并发的处理任务
本章教学视频说明
10.1进程与线程
10.2线程
10.2.1线程的创建及原理
10.2.2互斥锁
10.2.3实例31:使用信号量来同步多线程间的顺序关系
10.2.4实例32:实现基于事件机制的消息队列
10.2.5实例33:使用条件锁同步多线程中的生产者与消费者关系
10.2.6实例34:创建定时器触发程序,在屏幕上输出消息
10.2.7实例35:使用线程池提升运行效率
10.2.8需要创建多少个线程才算合理
10.3进程
10.3.1实例36:创建多进程的程序
10.3.2多进程与多线程的区别
10.4协程
10.4.1协程的相关概念及实现步骤
10.4.2实例37:使用协程实现“任务提交”与“结果接收”
10.5应该选择线程,还是协程
10.6实例38:使用协程批量修改文件扩展名
第4篇商业实战
1章爬虫实战(实例39):批量采集股票数据,并保存到Excel中
11.1爬取股票代码
11.1.1找到目标网站
11.1.2打开调试窗口,查看网页代码
11.1.3在网页源码中找到目标元素
11.1.4分析目标源代码,找出规律
11.1.5编写代码抓取股票代码
11.1.6运行代码,显示结果
11.2爬取股票内容
11.2.1编写代码抓取批量内容
11.2.2运行代码显示结果
11.3爬虫项目的其他技术
2章自动化实战(实例40):读取Excel数据文件,并用可视化分析
12.1使用Pandas读取Excel文件,并用Matplotlib生成大盘走势图
12.2使用Pandas处理数据并绘制成图
12.2.1使用Pandas处理数据
12.2.2绘制直方图和折线图
12.3自动化数据处理的其他技术
3章机器学习实战(实例41):从一组看似混乱的数据中找出y≈2x的规律.8
13.1准备数据
13.2训练模型并实现可视化
13.2.1训练模型
13.2.2利用模型进行预测
13.2.3了解线性回归模型的内部原理
13.2.4将模型可视化
13.3评估模型
13.3.1评估模型的基本思路
13.3.2用代码实现模型评估
13.4保存模型,应用模型
13.5机器学习的方向
4章人工智能实战(实例42):基于人脸识别的“来访登记系统”
14.1安装案例所依赖的模块
14.2安装及使用dlib模块
14.3安装及使用face_recognition模块
14.4安装及使用opencv模块
14.5安装及使用yagmail模块
14.6详细设计
14.6.1需求描述
14.6.2定义系统的输入和输出
14.6.3系统规则及约束
14.6.4结构体设计
14.6.5软件的主体架构图
14.6.6软件的主体流程介绍
14.7编码实现
14.7.1导入模块
14.7.2定义结构体
14.7.3实现发送邮件函数
14.7.4实现邮件内容生成函数
14.7.5实现过滤并保存来访记录的函数
14.7.6实现定时器处理函数
14.7.7在主线程中启动定时器线程
14.7.8实现并调用函数载入人脸库
14.7.9在主循环里调用摄像头,并进行人脸识别
14.8运行程序
14.9下一步对系统的改进
附录A内置函数