* 上手门槛低,8岁的小朋友Charlie亲验,不但可以看懂书中关于Python语法的基础知识,且写出了自己的小程序。
* 覆盖的知识面广,知识体系完备、系统,再也不用“面向百度”编程。
* 案例实战性强,涉及大数据展示、网络爬虫、游戏等Python热点应用领域,求职不再难。
* 110道练习题/面试题与习题答案,编程图书不仅是用来看的,还需要动手操练,知行合一,方为get一门技能的真经。
* 过万小时线下授课经验锤炼出的大师级讲解能力,将深奥的原理用浅显的比喻表达出来,一学就懂,一看就会。
* 诱惑十足的增值服务,作者提供用于学习和交流的配套网站及作者亲自在线的答疑微信群、QQ群。
《疯狂Python讲义》既是一本适合初学者入门Python的图书(一个8岁的小朋友在未出版前已学习了本书很多章节并动手写出了自己的程序);这也是一本适合Python就业的图书,因为本书涵盖了网络编程、数据分析、网络爬虫等大量企业实用的知识。
《疯狂Python讲义》全面而深入介绍了Python编程的相关内容,全书内容大致可分为四个部分,第一部分系统讲解了Python的基本语法结构、Python的函数编程、Python的类和对象、模块和包、异常处理等核心语法;第二部分主要介绍Python常用的内置模块和包,这部分包括Python的JSON、正则表达式支持、容器相关类、collections包、Tkinter GUI编程、IO编程、数据库编程、并发编程、网络通信编程等内容,这部分内容既是掌握Python编程的核心,也是Python进阶的关键基础;第三部分主要介绍Python开发工程化方面的内容,包括如何为Python程序编写符合格式的文档注释、提取文档注释生成帮助文档,为Python程序编写测试用例,程序打包等内容;第四部分则属于“Python项目实战”,这部分引入了pygame、Matplotlib、Pygal、Scrapy这些第三方的包,通过项目介绍了Python游戏开发、大数据展示、网络爬虫等热门技能,尤其是网络爬虫和大数据展示,绝对是当下Python至热的就业岗位。
与“疯狂体系”图书类似,虽然我会尽量让《疯狂Python讲义》的讲解通俗易懂(毕竟一个8岁的小朋友也能阅读此书),但我创作“疯狂体系”图书的初衷从来就不是“简单”和“入门”,本书所覆盖的Python的深度和广度,是很多书籍所不能比拟的,《疯狂Python讲义》涉及大量实用案例开发:五子棋游戏、画图板、桌面弹球、合金弹头、大数据展示、基于网络的各国GDP对比、基于爬虫的招聘热点分析、基于爬虫的高清图片下载、基于Scrapy+Seleninum的微博登录……设计这些案例的初衷不是“简单”和“入门”,而是让读者学以致用、激发编程自豪感,进而引爆内心的编程激情。因此那些仅图简单的读者,建议不要选择此书。《疯狂Python讲义》课后习题共包括110道循序渐进的Python练习题(面试题),读者可通过这些练习题巩固所学、为面试做准备。如果读者需要获取关于课后习题的解决方法、编程思路,可以登录http://www.crazyit.org站点或关注“疯狂图书”微信服务号。
《疯狂Python讲义》为所有打算深入掌握Python编程的读者而编写,适合各种层次的Python学习者和工作者阅读,也适合作为大学教育、培训机构的Python教材。但如果只是想简单涉猎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 5
1.3.2 在Linux上安装Python 6
1.3.3 在Mac OS X上安装Python 7
1.4 第一个Python程序 8
1.4.1 编辑Python源程序 8
1.4.2 使用IDLE运行Python程序 8
1.4.3 使用命令行工具运行Python程序 9
1.5 交互式解释器 11
1.6 本章小结 12
本章练习 12
第2章 变量和简单类型 13
2.1 单行注释和多行注释 14
2.2 变量 15
2.2.1 Python是弱类型语言 15
2.2.2 使用print函数输出变量 16
2.2.3 变量的命名规则 17
2.2.4 Python的关键字和内置函数 18
2.3 数值类型 19
2.3.1 整型 19
2.3.2 浮点型 21
2.3.3 复数 21
2.4 字符串入门 22
2.4.1 字符串和转义字符 22
2.4.2 拼接字符串 23
2.4.3 repr和字符串 23
2.4.4 使用input和raw_input获取用户输入 24
2.4.5 长字符串 25
2.4.6 原始字符串 26
2.4.7 字节串(bytes) 26
2.5 深入使用字符串 28
2.5.1 转义字符 28
2.5.2 字符串格式化 29
2.5.3 序列相关方法 31
2.5.4 大小写相关方法 32
2.5.5 删除空白 33
2.5.6 查找、替换相关方法 34
2.5.7 分割、连接方法 35
2.6 运算符 36
2.6.1 赋值运算符 36
2.6.2 算术运算符 37
2.6.3 位运算符 39
2.6.4 扩展后的赋值运算符 42
2.6.5 索引运算符 42
2.6.6 比较运算符与bool类型 42
2.6.7 逻辑运算符 44
2.6.8 三目运算符 45
2.6.9 in运算符 46
2.6.10 运算符的结合性和优先级 46
2.7 本章小结 47
本章练习 47
第3章 列表、元组和字典 49
3.1 序列简介 50
3.1.1 Python的序列 50
3.1.2 创建列表和元组 50
3.2 列表和元组的通用用法 51
3.2.1 通过索引使用元素 51
3.2.2 子序列 51
3.2.3 加法 52
3.2.4 乘法 52
3.2.5 in运算符 53
3.2.6 长度、最大值和最小值 53
3.2.7 序列封包和序列解包 54
3.3 使用列表 55
3.3.1 创建列表 55
3.3.2 增加列表元素 56
3.3.3 删除列表元素 57
3.3.4 修改列表元素 58
3.3.5 列表的其他常用方法 59
3.4 使用字典 61
3.4.1 字典入门 61
3.4.2 创建字典 62
3.4.3 字典的基本用法 63
3.4.4 字典的常用方法 64
3.4.5 使用字典格式化字符串 67
3.5 本章小结 67
本章练习 67
第4章 流程控制 68
4.1 顺序结构 69
4.2 if分支结构 69
4.2.1 不要忘记缩进 70
4.2.2 不要随意缩进 72
4.2.3 不要遗忘冒号 73
4.2.4 if条件的类型 73
4.2.5 if分支的逻辑错误 74
4.2.6 if表达式 75
4.2.7 pass语句 75
4.3 断言 76
4.4 循环结构 76
4.4.1 while循环 77
4.4.2 使用while循环遍历列表和元组 78
4.4.3 for-in循环 79
4.4.4 使用for-in循环遍历列表和元组 79
4.4.5 使用for-in循环遍历字典 80
4.4.6 循环使用else 81
4.4.7 嵌套循环 83
4.4.8 for表达式 84
4.4.9 常用工具函数 86
4.5 控制循环结构 87
4.6 牛刀小试 90
4.7 本章小结 98
本章练习 98
第5章 函数和lambda表达式 101
5.1 函数入门 102
5.2 函数的参数 106
5.3 局部函数 118
5.4 函数的高级内容 119
5.5 局部函数与lambda表达式 122
5.6 本章小结 124
本章练习 124
第6章 类和对象 125
6.1 类和对象 126
6.2 方法 132
6.3 成员变量 137
6.4 隐藏和封装 142
6.5 类的继承 144
6.6 Python的动态性 149
6.7 多态 153
6.8 枚举类 156
6.9 本章小结 159
本章练习 159
第7章 异常处理 160
7.1 异常概述 161
7.2 异常处理机制 162
7.3 使用raise引发异常 171
7.4 Python的异常传播轨迹 175
7.5 异常处理规则 177
7.6 本章小结 179
本章练习 179
第8章 Python类的特殊方法 180
8.1 常见的特殊方法 181
8.2 与反射有关的属性和方法 186
8.3 与序列有关的特殊方法 189
8.4 生成器 193
8.5 运算符重载的特殊方法 197
8.6 本章小结 205
本章练习 205
第9章 模块和包 206
9.1 模块化编程 207
9.2 加载模块 212
9.3 使用包 219
9.4 查看模块内容 224
9.5 本章小结 226
本章练习 226
第10章 常见模块 227
10.1 sys 228
10.2 os模块 231
10.3 random 234
10.4 time 235
10.5 JSON支持 238
10.6 正则表达式 244
10.7 容器相关类 256
10.8 collections下的容器支持 265
10.9 函数相关模块 273
10.10 本章小结 283
本章练习 283
第11章 图形界面编程 285
11.1 Python的GUI库 286
11.2 Tkinter GUI编程的组件 287
11.3 布局管理器 293
11.4 事件处理 299
11.5 Tkinter常用组件 304
11.6 对话框(Dialog) 330
11.7 菜单 342
11.8 在Canvas中绘图 349
11.9 本章小结 371
本章练习 371
第12章 文件I/O 372
12.1 使用pathlib模块操作目录 373
12.2 使用os.path操作目录 379
12.3 使用fnmatch处理文件名匹配 380
12.4 打开文件 381
12.5 读取文件 383
12.6 写文件 391
12.7 os模块的文件和目录函数 393
12.8 使用tempfile模块生成临时文件和临时目录 398
12.9 本章小结 399
本章练习 400
第13章 数据库编程 401
13.1 Python数据库API简介 402
13.2 操作SQLite数据库 404
13.3 操作MySQL数据库 417
13.4 本章小结 427
本章练习 427
第14章 并发编程 428
14.1 线程概述 429
14.2 线程的创建和启动 431
14.3 线程的生命周期 434
14.4 控制线程 438
14.5 线程同步 440
14.6 线程通信 447
14.7 线程池 454
14.8 线程相关类 458
14.9 多进程 462
14.10 本章小结 470
本章练习 470
第15章 网络编程 471
15.1 网络编程的基础知识 472
15.2 Python的基本网络支持 474
15.3 基于TCP协议的网络编程 486
15.4 基于UDP协议的网络编程 500
15.5 电子邮件支持 505
15.6 本章小结 511
本章练习 512
第16章 文档和测试 513
16.1 使用pydoc生成文档 514
16.2 软件测试概述 519
16.3 文档测试 523
16.4 单元测试 525
16.5 使用PyUnit(unittest) 529
16.6 本章小结 540
本章练习 540
第17章 打包和发布 541
17.1 使用zipapp模块 542
17.2 使用PyInstaller生成可执行程序 544
17.3 本章小结 547
本章练习 547
第18章 合金弹头 548
18.1 合金弹头游戏简介 549
18.2 pygame简介 550
18.3 开发游戏界面组件 553
18.4 增加“角色” 566
18.5 合理绘制地图 575
18.6 增加音效 577
18.7 增加游戏场景 579
18.8 本章小结 583
本章练习 583
第19章 数据可视化 584
19.1 使用Matplotlib生成数据图 585
19.2 功能丰富的数据图 597
19.3 使用Pygal生成数据图 606
19.4 Pygal支持的常见数据图 609
19.5 处理数据 617
19.6 本章小结 629
本章练习 629
第20章 网络爬虫 630
20.1 安装Scrapy 631
20.2 使用爬虫爬取、分析招聘信息 634
20.3 处理反爬虫 646
20.4 本章小结 657
本章练习 657
部分章节仅保留至二级标题,完整目录请见本书。