《Python带我起飞 入门、进阶、商业实战》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:李金洪编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121343223
  • 页数:328 页
图书介绍:全书共分为4篇:第1篇,包括了解Python、配置机器及搭建开发环境、语言规则;第2篇,介绍了Python语言的基础操作,包括变量与操作、控制流、函数操作、错误与异常、文件操作;第3篇,介绍了更高级的Python语法知识及应用,包括面向对象编程、系统调度编程;第4篇,是对前面知识的综合及实际应用,包括爬虫实战、自动化实战、机器学习实战、人工智能实战。本书结构清晰、案例丰富、通俗易懂、实用性强。特别适合Python语言的初学者和进阶读者,作为自学教程阅读。另外,本书也适合社会培训学校作为培训教材使用,还适合大中专院校的相关专业作为教学参考书。

第1篇 入门 2

第1章 了解Python 2

1.1 了解Python的历史 2

1.2 Python可以做什么 3

1.3 Python在数据科学中的地位及前景 3

1.4 如何使用本书 3

第2章 配置机器及搭建开发环境 5

本章教学视频说明 5

2.1 Python版本及开发环境介绍 6

2.1.1 Python的运行方式 6

2.1.2 常见的集成开发环境(IDE) 7

2.2 下载及安装Anaconda 7

2.3 熟悉Anaconda 3开发工具 10

2.3.1 快速了解Spyder 11

2.3.2 快速了解Jupyter Notebook 14

2.4 实例1:运行Python程序,并传入参数 14

2.4.1 在Spyder中新建Python文件,编写代码,运行代码 15

2.4.2 用命令行启动Python程序,并传入参数 16

2.4.3 用Spyder启动Python程序,并传入参数 17

第3章 语言规则——Python的条条框框 19

本章教学视频说明 19

3.1 了解编程语言的分类 20

3.2 基础规则 21

3.2.1 了解Python源代码相关的几个概念 22

3.2.2 语句的基本规则:变量、语句、代码块 22

3.2.3 添加注释 23

3.2.4 使用Python的“帮助” 24

3.3 代码文件的结构 24

3.3.1 模块 24

3.3.2 包 25

3.4 模块的详细介绍 26

3.4.1 模块的作用及分类 26

3.4.2 模块的基本使用方法 27

3.4.3 模块的搜索路径 27

3.4.4 模块的属性 28

3.4.5 模块名字的可变性 28

3.4.6 模块的常规写法 29

3.5 模块的四种导入方式 29

3.5.1 import as方式 29

3.5.2 from import方式 29

3.5.3 from import*方式 30

3.5.4 导入文件名中带空格的模块 31

3.6 实例2:封装获取系统信息的模块,并将其导入 31

3.6.1 在当前代码中的函数与模块中的函数同名情况下,导入模块 32

3.6.2 在模块与当前代码不在同一路径的情况下,导入模块 34

3.6.3 导入上级路径的模块 35

第2篇 进阶 38

第4章 变量——编写代码的基石 38

本章教学视频说明 38

4.1 什么是变量 39

4.2 了解变量的规则 40

4.2.1 明白变量的本质——对象 40

4.2.2 同时定义多个变量 40

4.2.3 变量类型介绍 41

4.2.4 变量类型的帮助函数 41

4.3 numbers(数字)类型 42

4.3.1 获取对象的类型 42

4.3.2 算术运算符 42

4.3.3 实例3:演示“算术运算符”的使用 43

4.3.4 赋值运算符 44

4.3.5 实例4:演示“赋值运算符”的使用 44

4.3.6 比较运算符 45

4.3.7 实例5:演示“比较运算符”的使用 46

4.3.8 慎用is函数 48

4.3.9 实例6:演示Python的缓存机制 50

4.3.10 布尔型关系的运算符 52

4.3.11 位运算符 53

4.3.12 实例7:演示“位运算符”的使用 54

4.4 strings(字符串)类型 54

4.4.1 字符串的描述 55

4.4.2 转义符 56

4.4.3 屏幕I/O及格式化 59

4.4.4 实例8:以字符串为例,演示“序列”类型的运算及操作 65

4.4.5 关于切片的特殊说明 67

4.4.6 字符串的相关函数 68

4.5 list(列表)类型 69

4.5.1 list的运算及操作 70

4.5.2 list的内置方法 70

4.5.3 实例9:演示list使用中的技巧及注意事项 71

4.5.4 列表嵌套 74

4.5.5 实例10:使用list类型实现队列和栈 74

4.5.6 实例11:使用函数filter筛选列表——筛选学生列表中的偏科学生名单 77

4.6 tuple(元组)类型 79

4.6.1 tuple的描述 79

4.6.2 运算及操作 80

4.6.3 实例12:演示tuple的用法 80

4.7 set(集合)类型 83

4.7.1 set的描述 83

4.7.2 set的运算 84

4.7.3 set的内置方法 84

4.7.4 不可变集合 85

4.8 dictionary(字典)类型 85

4.8.1 字典的描述 86

4.8.2 字典的运算 86

4.8.3 字典的内置方法 88

4.9 对组合对象进行“深拷贝”和“浅拷贝” 88

4.9.1 浅拷贝 88

4.9.2 深拷贝 89

第5章 控制流——控制执行顺序的开关 91

本章教学视频说明 91

5.1 if语句 92

5.1.1 语句形式 92

5.1.2 演示if语句的使用 92

5.1.3 实例13:根据来访人的性别选择合适的称呼 93

5.2 while语句 94

5.2.1 语句形式 94

5.2.2 演示while语句的使用 94

5.2.3 实例14:将十进制数转化为二进制数 95

5.3 for语句 96

5.3.1 语句形式 96

5.3.2 在for循环中,使用切片 96

5.3.3 在for循环中,使用内置函数range 97

5.3.4 实例15:利用循环实现冒泡排序 98

5.3.5 在for循环中,使用内置函数zip 99

5.3.6 在for循环中,使用内置函数enumerate 101

5.4 对循环进行控制——break、 continue、 pass语句 102

5.5 实例16:演示人机对话中的控制流程(综合应用前面语句) 102

5.6 利用for循环实现列表推导式 104

5.7 实例17:利用循环来打印“九九乘法表” 105

5.8 理解for循环的原理——迭代器 106

第6章 函数——功能化程序片段的封装 108

本章教学视频说明 108

6.1 函数的基本概念 109

6.1.1 函数的定义 109

6.1.2 函数的组成部分 109

6.1.3 函数的参数:形参与实参 110

6.1.4 函数的返回值 111

6.1.5 函数的属性 111

6.1.6 函数的本质 112

6.1.7 函数的分类 112

6.1.8 实例18:打印两个心形图案 113

6.2 定义参数及调用函数 115

6.2.1 函数参数的定义方法与调用形式 115

6.2.2 在函数调用中检查参数 121

6.2.3 函数调用中的参数传递及影响 122

6.3 匿名函数与可迭代函数 124

6.3.1 匿名函数与可迭代函数的介绍 124

6.3.2 匿名函数与reduce函数的组合应用 125

6.3.3 匿名函数与map函数的组合应用 125

6.3.4 匿名函数与filter函数的组合应用 126

6.3.5 可迭代函数的返回值 127

6.4 偏函数 128

6.5 递归函数 129

6.6 eval与exec函数 130

6.6.1 eval与exec的区别 130

6.6.2 eval与exec的定义 130

6.6.3 exec和eval的使用经验 132

6.6.4 eval与exec的扩展知识 134

6.7 实例19:批量测试转化函数(实现“组合对象”与“字符串”的相互转化) 134

6.7.1 编写两个功能函数 135

6.7.2 编写单元测试用例 135

6.7.3 批量运行单元测试用例 136

6.8 生成器函数 137

6.8.1 生成器与迭代器的区别 137

6.8.2 生成器函数 137

6.8.3 生成器表达式 137

6.9 变量的作用域 138

6.9.1 作用域介绍 138

6.9.2 global语句 140

6.9.3 nonlocal语句 140

6.10 工厂函数 141

6.10.1 普通工厂函数的实现 141

6.10.2 闭合函数(closure) 142

6.10.3 装饰器(decorator) 143

6.10.4 @修饰符 144

6.10.5 更高级的装饰器 145

6.10.6 解决“同作用域下默认参数被覆盖”问题 151

第7章 错误与异常——调教出听话的程序 153

本章教学视频说明 153

7.1 错误的分类 154

7.1.1 语法错误 154

7.1.2 运行时错误 154

7.2 异常的基本语法 155

7.2.1 同时处理多个异常 156

7.2.2 异常处理中的else语句 157

7.2.3 输出未知异常 157

7.2.4 输出异常的详细信息 158

7.3 捕获与处理异常 160

7.3.1 异常的处理流程 161

7.3.2 try语句的工作原理 161

7.3.3 一些常见的异常 161

7.4 创建异常 163

7.4.1 创建异常的方法 163

7.4 2创建异常举例 163

7.5 异常的最终处理(清理动作) 164

7.5.1 fiinally的使用场景 164

7.5.2 fiinally与else的区别 165

7.6 判定条件的正确性(断言) 165

7.6.1 断言的表达形式 165

7.6.2 带错误信息的断言语句 166

7.7 实例20:如HTTP请求失败,实现“重试”功能 166

7.7.1 使用装饰器实现失败重试 167

7.7.2 编写简单爬虫 168

7.7.3 传入正确的目的地址,开始爬取 168

7.7.4 传入错误的目的地址,验证“重试”功能 169

第8章 文件操作——数据持久化的一种方法 170

本章教学视频说明 170

8.1 文件的基本操作 171

8.1.1 读写文件的一般步骤 171

8.1.2 打开文件 172

8.1.3 具体读写 173

8.1.4 关闭文件 174

8.2 文件对象的方法 175

8.2.1 文件对象的常用方法介绍 175

8.2.2 把文件对象当作迭代器来读取 176

8.3 实例21:带有异常处理的文件操作 177

8.4 使用with语句简化代码 178

8.4.1 实例22:使用with语句操作文件 178

8.4.2 with语法的原理 179

8.5 实现字符串与二进制数的相互转化 179

8.5.1 将字符串转二进制数 180

8.5.2 将二进制数转字符串 180

8.6 将任意对象序列化 181

8.6.1 pickle函数 181

8.6.2 实例23:用pickle函数实现元组与“二进制对象”“二进制对象文件”之间的转换 183

8.6.3 序列化的扩展方法(ZODB模块) 185

8.7 实例24:批量读取及显示CT医疗影像数据 185

8.7.1 DICOM介绍 185

8.7.2 Python中的DICOM接口模块 186

8.7.3 编写代码以载入DICOM文件 186

8.7.4 读取DICOM中的数值 187

8.7.5 显示单张DICOM数据图像 189

8.7.6 批量生成DICOM数据图像 189

第3篇 高阶 192

第9章 类——面向对象的编程方案 192

本章教学视频说明 192

9.1 类的相关术语及实现 193

9.1.1 创建类 194

9.1.2 创建类属性 194

9.1.3 定义类的动态属性 195

9.1.4 限制类属性(slots) 196

9.2 实例化类对象 197

9.2.1 带有初始值的实例化 197

9.2.2 class中的self 198

9.2.3 类方法(@classmethod)与静态方法(@staticmethod) 200

9.2.4 类变量与实例变量的区别 202

9.2.5 销毁类实例化对象 203

9.3 类变量的私有化类属性 204

9.3.1 公有化(public)与私有化(private) 204

9.3.2 私有化的实现 205

9.3.3 使用装饰器技术实现类的私有化(@property) 207

9.4 实现子类 209

9.4.1 继承 209

9.4.2 实例25:演示类的继承 211

9.4.3 super函数 212

9.4.4 实例26:演示super函数的功能 212

9.5 类相关的常用内置函数 216

9.5.1 判断实例(isinstance) 216

9.5.2 判断子类(issubclass) 216

9.5.3 判断类实例中是否含有某个属性(hasattr) 217

9.5.4 获得类实例中的某个属性(getattr) 217

9.5.5 设置类实例中的某个属性值(setattr) 217

9.6 重载运算符 218

9.6.1 重载运算符的方法与演示 218

9.6.2 可重载的运算符 219

9.7 包装与代理 220

9.7.1 包装 220

9.7.2 代理 221

9.7.3 实例27:使用代理的方式实现RESTful API接口 222

9.8 自定义异常类 225

9.8.1 自定义异常类的方法 225

9.8.2 实例28:自定义异常类的多重继承与使用 226

9.9 支持with语法的自定义类 228

9.9.1 实现支持with语法的类 229

9.9.2 实例29:代码实现自定义类,并使其支持with语法 229

9.10 “自定义迭代器类”的实现与调试技巧 231

9.10.1 实例30:自定义迭代器,实现字符串逆序 231

9.10.2 调试技巧 233

9.11 元类(MetaClass) 238

9.11.1 Class的实现原理 238

9.11.2 元类的介绍 239

第10章 系统调度——实现高并发的处理任务 242

本章教学视频说明 242

10.1 进程与线程 243

10.2 线程 243

10.2.1 线程的创建及原理 244

10.2.2 互斥锁 248

10.2.3 实例31:使用信号量来同步多线程间的顺序关系 251

10.2.4 实例32:实现基于事件机制的消息队列 254

10.2.5 实例33:使用条件锁同步多线程中的生产者与消费者关系 257

10.2.6 实例34:创建定时器触发程序,在屏幕上输出消息 259

10.2.7 实例35:使用线程池提升运行效率 261

10.2.8 需要创建多少个线程才算合理 265

10.3 进程 265

10.3.1 实例36:创建多进程的程序 265

10.3.2 多进程与多线程的区别 268

10.4 协程 268

10.4.1 协程的相关概念及实现步骤 269

10.4.2 实例37:使用协程实现“任务提交”与“结果接收” 270

10.5 应该选择线程,还是协程 271

10.6 实例38:使用协程批量修改文件扩展名 271

第4篇 商业实战 276

第11章 爬虫实战(实例39):批量采集股票数据,并保存到Excel中 276

11.1 爬取股票代码 276

11.1.1 找到目标网站 277

11.1.2 打开调试窗口,查看网页代码 277

11.1.3 在网页源码中找到目标元素 278

11.1.4 分析目标源代码,找出规律 278

11.1.5 编写代码抓取股票代码 279

11.1.6 运行代码,显示结果 280

11.2 爬取股票内容 280

11.2.1 编写代码抓取批量内容 280

11.2.2 运行代码显示结果 281

11.3 爬虫项目的其他技术 282

第12章 自动化实战(实例40):读取Excel数据文件,并用可视化分析 283

12.1 使用Pandas读取Excel文件,并用Matplotlib生成大盘走势图 283

12.2 使用Pandas处理数据并绘制成图 285

12.2.1 使用Pandas处理数据 285

12.2.2 绘制直方图和折线图 286

12.3 自动化数据处理的其他技术 287

第13章 机器学习实战(实例41):从一组看似混乱的数据中找出y≈2x的规律 288

13.1 准备数据 288

13.2 训练模型并实现可视化 290

13.2.1 训练模型 290

13.2.2 利用模型进行预测 290

13.2.3 了解线性回归模型的内部原理 291

13.2.4 将模型可视化 291

13.3 评估模型 292

13.3.1 评估模型的基本思路 292

13.3.2 用代码实现模型评估 293

13.4 保存模型,应用模型 293

13.5 机器学习的方向 294

第14章 人工智能实战(实例42):基于人脸识别的“来访登记系统” 295

14.1 安装案例所依赖的模块 295

14.2 安装及使用dlib模块 296

14.2.1 下载dlib模块 296

14.2.2 安装dlib模块 298

14.2.3 使用dlib模块进行人脸检测 299

14.3 安装及使用face_recognition模块 300

14.3.1 下载face_ recognition模块 300

14.3.2 下载及安装face_recognition_models模型 301

14.3.3 使用face_ recognition模块检测人脸中的特征点 303

14.4 安装及使用opencv模块 304

14.4.1 下载并安装opencv模块 304

14.4.2 下载中文字体 304

14.4.3 使用opencv调用摄像头进行拍照 305

14.5 安装及使用yagmail模块 306

14.5.1 安装yagmail模块 306

14.5.2 使用yagmail模块向自己的QQ邮箱发送邮件 306

14.6 详细设计 309

14.6.1 需求描述 310

14.6.2 定义系统的输入和输出 310

14.6.3 系统规则及约束 310

14.6.4 结构体设计 310

14.6.5 软件的主体架构图 311

14.6.6 软件的主体流程介绍 312

14.7 编码实现 312

14.7.1 导入模块 312

14.7.2 定义结构体 313

14.7.3 实现发送邮件函数 313

14.7.4 实现邮件内容生成函数 313

14.7.5 实现过滤并保存来访记录的函数 314

14.7.6 实现定时器处理函数 314

14.7.7 在主线程中启动定时器线程 315

14.7.8 实现并调用函数载入人脸库 315

14.7.9 在主循环里调用摄像头,并进行人脸识别 316

14.8 运行程序 318

14.9 下一步对系统的改进 319

附录A内置函数 321