当前位置:首页 > 工业技术
疯狂PYTHON讲义
疯狂PYTHON讲义

疯狂PYTHON讲义PDF电子书下载

工业技术

  • 电子书积分:18 积分如何计算积分?
  • 作 者:李刚编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2019
  • ISBN:7121351976
  • 页数:624 页
图书介绍:
《疯狂PYTHON讲义》目录
标签:讲义 编著

第1章 Python语言概述和开发环境 1

1.1 Python简介 2

1.1.1 Python简史 2

1.1.2 Python的特点 3

1.2 Python程序运行机制 3

1.3 开发Python的准备 4

1.3.1 在Windows上安装Python 4

1.3.2 在Linux上安装Python 6

1.3.3 在Mac OS X上安装Python 7

1.4 第一个Python程序 7

1.4.1 编辑Python源程序 7

1.4.2 使用IDLE运行Python程序 8

1.4.3 使用命令行工具运行Python程序 8

1.5 交互式解释器 10

1.6 本章小结 11

本章练习 11

第2章 变量和简单类型 12

2.1 单行注释和多行注释 13

2.2 变量 14

2.2.1 Python是弱类型语言 14

2.2.2 使用print函数输出变量 15

2.2.3 变量的命名规则 16

2.2.4 Python的关键字和内置函数 17

2.3 数值类型 18

2.3.1 整型 18

2.3.2 浮点型 20

2.3.3 复数 20

2.4 字符串入门 21

2.4.1 字符串和转义字符 21

2.4.2 拼接字符串 22

2.4.3 repr和字符串 22

2.4.4 使用input和raw_input获取用户输入 23

2.4.5 长字符串 24

2.4.6 原始字符串 24

2.4.7 字节串(bytes) 25

2.5 深入使用字符串 27

2.5.1 转义字符 27

2.5.2 字符串格式化 27

2.5.3 序列相关方法 29

2.5.4 大小写相关方法 30

2.5.5 删除空白 32

2.5.6 查找、替换相关方法 32

2.5.7 分割、连接方法 34

2.6 运算符 34

2.6.1 赋值运算符 34

2.6.2 算术运算符 35

2.6.3 位运算符 37

2.6.4 扩展后的赋值运算符 40

2.6.5 索引运算符 40

2.6.6 比较运算符与bool类型 40

2.6.7 逻辑运算符 41

2.6.8 三目运算符 42

2.6.9 in运算符 44

2.6.10 运算符的结合性和优先级 44

2.7 本章小结 45

本章练习 45

第3章 列表、元组和字典 46

3.1 序列简介 47

3.1.1 Python的序列 47

3.1.2 创建列表和元组 47

3.2 列表和元组的通用用法 48

3.2.1 通过索引使用元素 48

3.2.2 子序列 48

3.2.3 加法 49

3.2.4 乘法 49

3.2.5 in运算符 50

3.2.6 长度、最大值和最小值 50

3.2.7 序列封包和序列解包 51

3.3 使用列表 52

3.3.1 创建列表 52

3.3.2 增加列表元素 53

3.3.3 删除列表元素 54

3.3.4 修改列表元素 55

3.3.5 列表的其他常用方法 56

3.4 使用字典 58

3.4.1 字典入门 58

3.4.2 创建字典 58

3.4.3 字典的基本用法 59

3.4.4 字典的常用方法 60

3.4.5 使用字典格式化字符串 63

3.5 本章小结 63

本章练习 64

第4章 流程控制 65

4.1 顺序结构 66

4.2 if分支结构 66

4.2.1 不要忘记缩进 67

4.2.2 不要随意缩进 69

4.2.3 不要遗忘冒号 70

4.2.4 if条件的类型 70

4.2.5 if分支的逻辑错误 71

4.2.6 if表达式 72

4.2.7 pass语句 72

4.3 断言 73

4.4 循环结构 73

4.4.1 while循环 73

4.4.2 使用while循环遍历列表和元组 74

4.4.3 for-in循环 75

4.4.4 使用for-in循环遍历列表和元组 76

4.4.5 使用for-in循环遍历字典 77

4.4.6 循环使用else 78

4.4.7 嵌套循环 79

4.4.8 for表达式 80

4.4.9 常用工具函数 82

4.5 控制循环结构 83

4.5.1 使用break结束循环 83

4.5.2 使用continue忽略本次循环的剩下语句 85

4.5.3 使用return结束方法 85

4.6 牛刀小试 86

4.6.1 数字转人民币读法 86

4.6.2 绕圈圈 87

4.6.3 控制台五子棋 89

4.6.4 控制台超市系统 90

4.7 本章小结 94

本章练习 94

第5章 函数和lambda表达式 97

5.1 函数入门 98

5.1.1 理解函数 98

5.1.2 定义函数和调用函数 99

5.1.3 为函数提供文档 100

5.1.4 多个返回值 100

5.1.5 递归函数 101

5.2 函数的参数 102

5.2.1 关键字(keyword)参数 102

5.2.2 参数默认值 103

5.2.3 参数收集(个数可变的参数) 105

5.2.4 逆向参数收集 106

5.2.5 函数的参数传递机制 107

5.2.6 变量作用域 111

5.3 局部函数 113

5.4 函数的高级内容 114

5.4.1 使用函数变量 115

5.4.2 使用函数作为函数形参 115

5.4.3 使用函数作为返回值 116

5.5 局部函数与lambda表达式 117

5.5.1 回顾局部函数 117

5.5.2 使用lambda表达式代替局部函数 118

5.6 本章小结 119

本章练习 119

第6章 类和对象 120

6.1 类和对象 121

6.1.1 定义类 121

6.1.2 对象的产生和使用 122

6.1.3 对象的产生和使用 123

6.1.4 实例方法和自动绑定self 124

6.2 方法 126

6.2.1 类也能调用实例方法 126

6.2.2 类方法与静态方法 128

6.2.3 @函数装饰器 128

6.2.4 再论类命名空间 131

6.3 成员变量 131

6.3.1 类变量和实例变量 131

6.3.2 使用property函数定义属性 134

6.4 隐藏和封装 137

6.5 类的继承 139

6.5.1 继承的语法 139

6.5.2 关于多继承 140

6.5.3 重写父类的方法 140

6.5.4 使用未绑定方法调用被重写的方法 141

6.5.5 使用super函数调用父类的构造方法 142

6.6 Python的动态性 143

6.6.1 动态属性与slots 144

6.6.2 使用type()函数定义类 145

6.6.3 使用metaclass 146

6.7 多态 147

6.7.1 多态性 147

6.7.2 检查类型 149

6.8 枚举类 150

6.8.1 枚举入门 150

6.8.2 枚举的构造器 152

6.9 本章小结 153

本章练习 153

第7章 异常处理 154

7.1 异常概述 155

7.2 异常处理机制 156

7.2.1 使用try_except捕获异常 156

7.2.2 异常类的继承体系 157

7.2.3 多异常捕获 159

7.2.4 访问异常信息 160

7.2.5 else块 161

7.2.6 使用finally回收资源 163

7.2.7 异常处理嵌套 165

7.3 使用raise引发异常 165

7.3.1 引发异常 165

7.3.2 自定义异常类 166

7.3.3 except和raise同时使用 167

7.3.4 raise不需要参数 168

7.4 Python的异常传播轨迹 168

7.5 异常处理规则 170

7.5.1 不要过度使用异常 171

7.5.2 不要使用过于庞大的try块 172

7.5.3 不要忽略捕获到的异常 172

7.6 本章小结 172

本章练习 173

第8章 Python类的特殊方法 174

8.1 常见的特殊方法 175

8.1.1 重写一repr方法 175

8.1.2 析构方法:del 176

8.1.3 dir方法 177

8.1.4 dict属性 178

8.1.5 _getattr_、_setattr_等 178

8.2 与反射相关的属性和方法 180

8.2.1 动态操作属性 180

8.2.2 call属性 182

8.3 与序列相关的特殊方法 183

8.3.1 序列相关方法 183

8.3.2 实现迭代器 185

8.3.3 扩展列表、元组和字典 186

8.4 生成器 186

8.4.1 创建生成器 187

8.4.2 生成器的方法 189

8.5 运算符重载的特殊方法 191

8.5.1 与数值运算符相关的特殊方法 191

8.5.2 与比较运算符相关的特殊方法 194

8.5.3 与单目运算符相关的特殊方法 195

8.5.4 与类型转换相关的特殊方法 196

8.5.5 与常见的内建函数相关的特殊方法 197

8.6 本章小结 198

本章练习 198

第9章 模块和包 199

9.1 模块化编程 200

9.1.1 导入模块的语法 200

9.1.2 定义模块 203

9.1.3 为模块编写说明文档 203

9.1.4 为模块编写测试代码 204

9.2 加载模块 205

9.2.1 使用环境变量 205

9.2.2 默认的模块加载路径 208

9.2.3 导入模块的本质 209

9.2.4 模块的_all_变量 211

9.3 使用包 212

9.3.1 什么是包 212

9.3.2 定义包 212

9.3.3 导入包内成员 214

9.4 查看模块内容 216

9.4.1 模块包含什么 216

9.4.2 使用doc属性查看文档 217

9.4.3 使用_file属性查看模块的源文件路径 218

9.5 本章小结 218

本章练习 218

第10章 常见模块 219

10.1 sys 220

10.1.1 获取运行参数 222

10.1.2 动态修改模块加载路径 223

10.2 os模块 223

10.3 random 225

10.4 time 227

10.5 JSON支持 230

10.5.1 JSON的基本知识 230

10.5.2 Python的JSON支持 232

10.6 正则表达式 236

10.6.1 Python的正则表达式支持 236

10.6.2 正则表达式旗标 241

10.6.3 创建正则表达式 242

10.6.4 子表达式 244

10.6.5 贪婪模式与勉强模式 246

10.7 容器相关类 247

10.7.1 set和frozenset 248

10.7.2 双端队列(deque) 250

10.7.3 Python的堆操作 253

10.8 collections下的容器支持 255

10.8.1 ChainMap对象 255

10.8.2 Counter对象 257

10.8.3 defaultdict对象 260

10.8.4 namedtuple工厂函数 261

10.8.5 OrderedDict对象 262

10.9 函数相关模块 264

10.9.1 itertools模块的功能函数 264

10.9.2 functools模块的功能函数 267

10.10 本章小结 273

本章练习 273

第11章 图形界面编程 275

11.1 Python的GUI库 276

11.2 Tkinter GUI编程的组件 277

11.3 布局管理器 283

11.3.1 Pack布局管理器 283

11.3.2 Grid布局管理器 285

11.3.3 Place布局管理器 287

11.4 事件处理 288

11.4.1 简单的事件处理 289

11.4.2 事件绑定 289

11.5 Tkinter常用组件 293

11.5.1 使用ttk组件 293

11.5.2 Variable类 294

11.5.3 使用compound选项 295

11.5.4 Entry和Text组件 297

11.5.5 Radiobutton和Checkbutton组件 300

11.5.6 Listbox和Combobox组件 303

11.5.7 Spinbox组件 308

11.5.8 Scale和LabeledScale组件 309

11.5.9 Labelframe组件 312

11.5.10 Panedwindow组件 314

11.5.11 OptionMenu组件 316

11.6 对话框(Dialog) 318

11.6.1 普通对话框 318

11.6.2 自定义模式、非模式对话框 320

11.6.3 输入对话框 322

11.6.4 文件对话框 324

11.6.5 颜色选择对话框 326

11.6.6 消息框 327

11.7 菜单 330

11.7.1 窗口菜单 330

11.7.2 右键菜单 334

11.8 在Canvas中绘图 336

11.8.1 Tkinter Canvas的绘制功能 336

11.8.2 操作图形项的标签 343

11.8.3 操作图形项 345

11.8.4 为图形项绑定事件 349

11.8.5 绘制动画 354

11.9 本章小结 357

本章练习 357

第12章 文件I/O 358

12.1 使用pathlib模块操作目录 359

12.1.1 PurePath的基本功能 360

12.1.2 PurePath的属性和方法 362

12.1.3 Path的功能和用法 363

12.2 使用os.path操作目录 365

12.3 使用fnmatch处理文件名匹配 366

12.4 打开文件 367

12.4.1 文件打开模式 367

12.4.2 缓冲 368

12.5 读取文件 369

12.5.1 按字节或字符读取 369

12.5.2 按行读取 371

12.5.3 使用fileinput读取多个输入流 371

12.5.4 文件迭代器 372

12.5.5 管道输入 373

12.5.6 使用with语句 374

12.5.7 使用linecache随机读取指定行 376

12.6 写文件 376

12.6.1 文件指针的概念 376

12.6.2 输出内容 377

12.7 os模块的文件和目录函数 378

12.7.1 与目录相关的函数 379

12.7.2 与权限相关的函数 380

12.7.3 与文件访问相关的函数 381

12.8 使用tempfile模块生成临时文件和临时目录 383

12.9 本章小结 385

本章练习 385

第13章 数据库编程 386

13.1 Python数据库API简介 387

13.1.1 全局变量 387

13.1.2 数据库API的核心类 388

13.1.3 操作数据库的基本流程 389

13.2 操作SQLite数据库 389

13.2.1 创建数据表 390

13.2.2 使用SQLite Expert工具 391

13.2.3 使用序列重复执行DML语句 393

13.2.4 执行查询 395

13.2.5 事务控制 396

13.2.6 执行SQL脚本 397

13.2.7 创建自定义函数 398

13.2.8 创建聚集函数 399

13.2.9 创建比较函数 400

13.3 操作MySQL数据库 401

13.3.1 下载和安装MySQL数据库 401

13.3.2 使用pip工具管理模块 404

13.3.3 执行DDL语句 405

13.3.4 执行DML语句 407

13.3.5 执行查询语句 408

13.3.6 调用存储过程 409

13.4 本章小结 410

本章练习 411

第14章 并发编程 412

14.1 线程概述 413

14.1.1 线程和进程 413

14.1.2 多线程的优势 414

14.2 线程的创建和启动 415

14.2.1 调用Thread类的构造器创建线程 415

14.2.2 继承Thread类创建线程类 417

14.3 线程的生命周期 418

14.3.1 新建和就绪状态 418

14.3.2 运行和阻塞状态 419

14.3.3 线程死亡 420

14.4 控制线程 421

14.4.1 join线程 422

14.4.2 后台线程 422

14.4.3 线程睡眠:sleep 423

14.5 线程同步 424

14.5.1 线程安全问题 424

14.5.2 同步锁(Lock) 425

14.5.3 死锁 428

14.6 线程通信 430

14.6.1 使用Condition实现线程通信 430

14.6.2 使用队列(Queue)控制线程通信 433

14.6.3 使用Event控制线程通信 434

14.7 线程池 436

14.7.1 使用线程池 437

14.7.2 获取执行结果 439

14.8 线程相关类 440

14.8.1 线程局部变量 440

14.8.2 定时器 441

14.8.3 任务调度 442

14.9 多进程 443

14.9.1 使用fork创建新进程 443

14.9.2 使用multiprocessing.Process创建新进程 444

14.9.3 Context和启动进程的方式 446

14.9.4 使用进程池管理进程 448

14.9.5 进程通信 449

14.10 本章小结 451

本章练习 451

第15章 网络编程 452

15.1 网络编程的基础知识 453

15.1.1 网络基础知识 453

15.1.2 IP地址和端口号 454

15.2 Python的基本网络支持 455

15.2.1 Python的网络模块概述 455

15.2.2 使用urllib.parse子模块 456

15.2.3 使用urllib.request读取资源 459

15.2.4 管理cookie 464

15.3 基于TCP协议的网络编程 467

15.3.1 TCP协议基础 467

15.3.2 使用socket创建TCP服务器端 468

15.3.3 使用socket通信 469

15.3.4 加入多线程 470

15.3.5 记录用户信息 472

15.3.6 半关闭的socket 477

15.3.7 selectors模块 478

15.4 基于UDP协议的网络编程 480

15.4.1 UDP协议基础 480

15.4.2 使用socket发送和接收数据 481

15.4.3 使用UDP协议实现多点广播 483

15.5 电子邮件支持 484

15.5.1 使用smtplib模块发送邮件 484

15.5.2 使用poplib模块收取邮件 488

15.6 本章小结 491

本章练习 491

第16章 文档和测试 492

16.1 使用pydoc生成文档 493

16.1.1 在控制台中查看文档 494

16.1.2 生成HT ML文档 495

16.1.3 启动本地服务器来查看文档信息 495

16.1.4 查找模块 496

16.2 软件测试概述 497

16.2.1 软件测试的概念和目的 497

16.2.2 软件测试的分类 498

16.2.3 开发活动和测试活动 499

16.2.4 常见的Bug管理工具 499

16.3 文档测试 500

16.4 单元测试 502

16.4.1 单元测试概述 502

16.4.2 单元测试的逻辑覆盖 504

16.5 使用PyUnit (unittest) 506

16.5.1 PyUnit (unittest)的用法 507

16.5.2 运行测试 510

16.5.3 使用测试包 511

16.5.4 测试固件之setUp和tearDown 513

16.5.5 跳过测试用例 515

16.6 本章小结 516

本章练习 516

第17章 打包和发布 517

17.1 使用zipapp模块 518

17.1.1 生成可执行的Python档案包 518

17.1.2 创建独立应用 519

17.2 使用PyInstaller生成可执行程序 520

17.2.1 安装PyInstaller 520

17.2.2 生成可执行程序 521

17.3 本章小结 523

本章练习 523

第18章 合金弹头 524

18.1 合金弹头游戏简介 525

18.2 pygame简介 525

18.2.1 安装pygame 526

18.2.2 pygame常用的游戏API 527

18.3 开发游戏界面组件 529

18.3.1 游戏界面分析 529

18.3.2 实现“怪物”类 529

18.3.3 实现怪物管理 534

18.3.4 实现“子弹”类 536

18.3.5 加载、管理游戏图片 538

18.3.6 让游戏“运行”起来 540

18.4 增加“角色” 541

18.4.1 开发“角色”类 541

18.4.2 添加角色 547

18.5 合理绘制地图 550

18.6 增加音效 551

18.7 增加游戏场景 554

18.8 本章小结 558

本章练习 558

第19章 数据可视化 559

19.1 使用Matplotlib生成数据图 560

19.1.1 安装Matplotlib包 560

19.1.2 Matplotlib数据图入门 561

19.1.3 管理图例 562

19.1.4 管理坐标轴 565

19.1.5 管理多个子图 566

19.2 功能丰富的数据图 570

19.2.1 饼图 570

19.2.2 柱状图 571

19.2.3 水平柱状图 573

19.2.4 散点图 574

19.2.5 等高线图 576

19.2.6 3D图形 577

19.3 使用Pygal生成数据图 578

19.3.1 安装Pygal包 578

19.3.2 Pygal数据图入门 578

19.3.3 配置Pygal数据图 580

19.4 Pygal支持的常见数据图 581

19.4.1 折线图 581

19.4.2 水平柱状图和水平折线图 581

19.4.3 叠加柱状图和叠加折线图 582

19.4.4 饼图 583

19.4.5 点图 584

19.4.6 仪表(Gauge)图 585

19.4.7 雷达图 586

19.5 处理数据 587

19.5.1 CSV文件格式 587

19.5.2 JSON数据 590

19.5.3 数据清洗 593

19.5.4 读取网络数据 595

19.6 本章小结 597

本章练习 597

第20章 网络爬虫 598

20.1 Scrapy简介 599

20.1.1 了解Scrapy 599

20.1.2 安装Scrapy 600

20.2 使用爬虫爬取、分析招聘信息 601

20.2.1 创建Scrapy项目 601

20.2.2 使用shell调试工具 603

20.2.3 Scrapy开发步骤 606

20.2.4 使用JSON导出信息 611

20.2.5 将数据写入数据库 611

20.2.6 使用Pygal展示招聘信息 612

20.3 处理反爬虫 613

20.3.1 使用shell调试工具分析目标站点 614

20.3.2 使用Scrapy爬取高清图片 616

20.3.3 应对反爬虫的常见方法 618

20.3.4 整合Selenium模拟浏览器行为 620

20.4 本章小结 624

本章练习 624

相关图书
作者其它书籍
返回顶部