资源详情

疯狂Python讲义(博文视点出品)

疯狂Python讲义(博文视点出品)-电子书下载


作者: 李刚
出版社: 电子工业出版社
出版年: 2019-1
页数: 648
定价: 118
ISBN: 9787121351976

下载次数:9


本站推荐

书籍资料

  • 内容简介
  • 作者介绍
  • 书籍目录

《疯狂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,则本书过于庞大,不适合阅读。

《疯狂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.1Python简介2
1.1.1Python简史2
1.1.2Python的特点3
1.2Python程序运行机制3
1.3开发Python的准备4
1.3.1在Windows上安装Python5
1.3.2在Linux上安装Python6
1.3.3在MacOSX上安装Python7
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.1Python是弱类型语言15
2.2.2使用print函数输出变量16
2.2.3变量的命名规则17
2.2.4Python的关键字和内置函数18
2.3数值类型1


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.3repr和字符串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.9in运算符46
2.6.10运算符的结合性和优先级46
2.7本章小结47
本章练习47
第3章列表、元组和字典49
3.1序列简介50
3.1.1Python的序列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.5in运算符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.2if分支结构69
4.2.1不要忘记缩进70
4.2.2不要随意缩进72
4.2.3不要遗忘冒号73
4.2.4if条件的类型73
4.2.5if分支的逻辑错误74
4.2.6if表达式75
4.2.7pass语句75
4.3断言76
4.4循环结构76
4.4.1while循环77
4.4.2使用while循环遍历列表和元组78
4.4.3for-in循环79
4.4.4使用for-in循环遍历列表和元组79
4.4.5使用for-in循环遍历字典80
4.4.6循环使用else81
4.4.7嵌套循环83
4.4.8for表达式84
4.4.9常用工具函数86
4.5控制循环结构87
4.5.1使用break结束循环88
4.5.2使用continue忽略本次循环的剩下语句89
4.5.3使用return结束方法89
4.6牛刀小试90
4.6.1数字转人民币读法90
4.6.2绕圈圈92
4.6.3控制台五子棋93
4.6.4控制台超市系统95
4.7本章小结98
本章练习98
第5章函数和lambda表达式101
5.1函数入门102
5.1.1理解函数102
5.1.2定义和调用函数103
5.1.3为函数提供文档104
5.1.4多个返回值104
5.1.5递归函数105
5.2函数的参数106
5.2.1关键字(keyword)参数106
5.2.2参数默认值107
5.2.3参数收集(个数可变的参数)109
5.2.4逆向参数收集110
5.2.5函数的参数传递机制112
5.2.6变量作用域115
5.3局部函数118
5.4函数的高级内容119
5.4.1使用函数变量119
5.4.2使用函数作为函数形参120
5.4.3使用函数作为返回值121
5.5局部函数与lambda表达式122
5.5.1回顾局部函数122
5.5.2使用lambda表达式代替局部函数123
5.6本章小结124
本章练习124
第6章类和对象125
6.1类和对象126
6.1.1定义类126
6.1.2对象的产生和使用127
6.1.3对象的产生和使用128
6.1.4实例方法和自动绑定self129
6.2方法132
6.2.1类也能调用实例方法132
6.2.2类方法与静态方法133
6.2.3@函数装饰器134
6.2.4再论类命名空间136
6.3成员变量137
6.3.1类变量和实例变量137
6.3.2使用property函数定义属性140
6.4隐藏和封装142
6.5类的继承144
6.5.1继承的语法144
6.5.2关于多继承145
6.5.3重写父类的方法146
6.5.4使用未绑定方法调用被重写的方法147
6.5.5使用super函数调用父类的构造方法147
6.6Python的动态性149
6.6.1动态属性与__slots__149
6.6.2使用type()函数定义类151
6.6.3使用metaclass152
6.7多态153
6.7.1多态性154
6.7.2检查类型155
6.8枚举类156
6.8.1枚举入门157
6.8.2枚举的构造器158
6.9本章小结159
本章练习159
第7章异常处理160
7.1异常概述161
7.2异常处理机制162
7.2.1使用try...except捕获异常162
7.2.2异常类的继承体系163
7.2.3多异常捕获166
7.2.4访问异常信息166
7.2.5else块167
7.2.6使用finally回收资源169
7.2.7异常处理嵌套171
7.3使用raise引发异常171
7.3.1引发异常171
7.3.2自定义异常类173
7.3.3except和raise同时使用173
7.3.4raise不需要参数174
7.4Python的异常传播轨迹175
7.5异常处理规则177
7.5.1不要过度使用异常177
7.5.2不要使用过于庞大的try块178
7.5.3不要忽略捕获到的异常179
7.6本章小结179
本章练习179
第8章Python类的特殊方法180
8.1常见的特殊方法181
8.1.1重写__repr__方法181
8.1.2析构方法:__del__182
8.1.3__dir__方法183
8.1.4__dict__属性184
8.1.5__getattr__、__setattr__等184
8.2与反射有关的属性和方法186
8.2.1动态操作属性187
8.2.2__call__属性188
8.3与序列有关的特殊方法189
8.3.1与序列相关的方法189
8.3.2实现迭代器191
8.3.3扩展列表、元组和字典192
8.4生成器193
8.4.1创建生成器193
8.4.2生成器的方法195
8.5运算符重载的特殊方法197
8.5.1与数值运算符相关的特殊方法197
8.5.2与比较运算符相关的特殊方法201
8.5.3与单目运算符相关的特殊方法202
8.5.4与类型转换相关的特殊方法203
8.5.5与常见的内建函数相关的特殊方法204
8.6本章小结205
本章练习205
第9章模块和包206
9.1模块化编程207
9.1.1导入模块的语法207
9.1.2定义模块210
9.1.3为模块编写说明文档211
9.1.4为模块编写测试代码211
9.2加载模块212
9.2.1使用环境变量212
9.2.2默认的模块加载路径215
9.2.3导入模块的本质217
9.2.4模块的__all__变量218
9.3使用包219
9.3.1什么是包219
9.3.2定义包220
9.3.3导入包内成员222
9.4查看模块内容224
9.4.1模块包含什么224
9.4.2使用__doc__属性查看文档225
9.4.3使用__file__属性查看模块的源文件路径226
9.5本章小结226
本章练习226
第10章常见模块227
10.1sys228
10.1.1获取运行参数230
10.1.2动态修改模块加载路径231
10.2os模块231
10.3random234
10.4time235
10.5JSON支持238
10.5.1JSON的基本知识238
10.5.2Python的JSON支持241
10.6正则表达式244
10.6.1Python的正则表达式支持245
10.6.2正则表达式旗标250
10.6.3创建正则表达式251
10.6.4子表达式253
10.6.5贪婪模式与勉强模式255
10.7容器相关类256
10.7.1set和frozenset257
10.7.2双端队列(deque)259
10.7.3Python的堆操作262
10.8collections下的容器支持265
10.8.1ChainMap对象265
10.8.2Counter对象267
10.8.3defaultdict对象269
10.8.4namedtuple工厂函数270
10.8.5OrderedDict对象272
10.9函数相关模块273
10.9.1itertools模块的功能函数273
10.9.2functools模块的功能函数276
10.10本章小结283
本章练习283
第11章图形界面编程285
11.1Python的GUI库286
11.2TkinterGUI编程的组件287
11.3布局管理器293
11.3.1Pack布局管理器293
11.3.2Grid布局管理器296
11.3.3Place布局管理器297
11.4事件处理299
11.4.1简单的事件处理299
11.4.2事件绑定300
11.5Tkinter常用组件304
11.5.1使用ttk组件304
11.5.2Variable类305
11.5.3使用compound选项306
11.5.4Entry和Text组件308
11.5.5Radiobutton和Checkbutton组件311
11.5.6Listbox和Combobox组件315
11.5.7Spinbox组件319
11.5.8Scale和LabeledScale组件320
11.5.9Labelframe组件324
11.5.10Panedwindow组件326
11.5.11OptionMenu组件328
11.6对话框(Dialog)330
11.6.1普通对话框330
11.6.2自定义模式、非模式对话框332
11.6.3输入对话框334
11.6.4文件对话框336
11.6.5颜色选择对话框338
11.6.6消息框339
11.7菜单342
11.7.1窗口菜单343
11.7.2右键菜单347
11.8在Canvas中绘图349
11.8.1TkinterCanvas的绘制功能349
11.8.2操作图形项的标签356
11.8.3操作图形项358
11.8.4为图形项绑定事件363
11.8.5绘制动画368
11.9本章小结371
本章练习371
第12章文件I/O372
12.1使用pathlib模块操作目录373
12.1.1PurePath的基本功能374
12.1.2PurePath的属性和方法376
12.1.3Path的功能和用法378
12.2使用os.path操作目录379
12.3使用fnmatch处理文件名匹配380
12.4打开文件381
12.4.1文件打开模式382
12.4.2缓冲383
12.5读取文件383
12.5.1按字节或字符读取383
12.5.2按行读取385
12.5.3使用fileinput读取多个输入流386
12.5.4文件迭代器386
12.5.5管道输入387
12.5.6使用with语句388
12.5.7使用linecache随机读取指定行390
12.6写文件391
12.6.1文件指针的概念391
12.6.2写文件392
12.7os模块的文件和目录函数393
12.7.1与目录相关的函数393
12.7.2与权限相关的函数395
12.7.3与文件访问相关的函数396
12.8使用tempfile模块生成临时文件和
临时目录398
12.9本章小结399
本章练习400
第13章数据库编程401
13.1Python数据库API简介402
13.1.1全局变量402
13.1.2数据库API的核心类403
13.1.3操作数据库的基本流程404
13.2操作SQLite数据库404
13.2.1创建数据表405
13.2.2使用SQLiteExpert工具406
13.2.3使用序列重复执行DML语句408
13.2.4执行查询410
13.2.5事务控制412
13.2.6执行SQL脚本412
13.2.7创建自定义函数413
13.2.8创建聚集函数414
13.2.9创建比较函数415
13.3操作MySQL数据库417
13.3.1下载和安装MySQL数据库417
13.3.2使用pip工具管理模块420
13.3.3执行DDL语句421
13.3.4执行DML语句423
13.3.5执行查询语句425
13.3.6调用存储过程426
13.4本章小结427
本章练习427
第14章并发编程428
14.1线程概述429
14.1.1线程和进程429
14.1.2多线程的优势430
14.2线程的创建和启动431
14.2.1调用Thread类的构造器创建线程431
14.2.2继承Thread类创建线程类433
14.3线程的生命周期434
14.3.1新建和就绪状态434
14.3.2运行和阻塞状态435
14.3.3线程死亡436
14.4控制线程438
14.4.1join线程438
14.4.2后台线程439
14.4.3线程睡眠:sleep440
14.5线程同步440
14.5.1线程安全问题440
14.5.2同步锁(Lock)442
14.5.3死锁445
14.6线程通信447
14.6.1使用Condition实现线程通信447
14.6.2使用队列(Queue)控制线程通信450
14.6.3使用Event控制线程通信452
14.7线程池454
14.7.1线程池454
14.7.2获取执行结果457
14.8线程相关类458
14.8.1线程局部变量458
14.8.2定时器460
14.8.3任务调度460
14.9多进程462
14.9.1使用fork创建新进程462
14.9.2使用multiprocessing.Process创建新进程463
14.9.3Context和启动进程的方式465
14.9.4使用进程池管理进程466
14.9.5进程通信468
14.10本章小结470
本章练习470
第15章网络编程471
15.1网络编程的基础知识472
15.1.1网络基础知识472
15.1.2IP地址和端口号473
15.2Python的基本网络支持474
15.2.1Python的网络模块概述474
15.2.2使用urllib.parse子模块475
15.2.3使用urllib.request读取资源479
15.2.4管理cookie483
15.3基于TCP协议的网络编程486
15.3.1TCP协议基础487
15.3.2使用socket创建TCP服务器端487
15.3.3使用socket通信489
15.3.4加入多线程490
15.3.5记录用户信息492
15.3.6半关闭的socket497
15.3.7selectors模块498
15.4基于UDP协议的网络编程500
15.4.1UDP协议基础500
15.4.2使用socket发送和接收数据501
15.4.3使用UDP协议实现多点广播503
15.5电子邮件支持505
15.5.1使用smtplib模块发送邮件505
15.5.2使用poplib模块收取邮件508
15.6本章小结511
本章练习512
第16章文档和测试513
16.1使用pydoc生成文档514
16.1.1在控制台中查看文档515
16.1.2生成HTML文档516
16.1.3启动本地服务器来查看文档信息517
16.1.4查找模块519
16.2软件测试概述519
16.2.1软件测试的概念和目的519
16.2.2软件测试的分类521
16.2.3开发活动和测试活动521
16.2.4常见的Bug管理工具522
16.3文档测试523
16.4单元测试525
16.4.1单元测试概述525
16.4.2单元测试的逻辑覆盖527
16.5使用PyUnit(unittest)529
16.5.1PyUnit(unittest)的用法530
16.5.2运行测试533
16.5.3使用测试包534
16.5.4测试固件之setUp和tearDown536
16.5.5跳过测试用例538
16.6本章小结540
本章练习540
第17章打包和发布541
17.1使用zipapp模块542
17.1.1生成可执行的Python档案包542
17.1.2创建独立应用543
17.2使用PyInstaller生成可执行程序544
17.2.1安装PyInstaller544
17.2.2使用PyInstaller生成可执行程序545
17.3本章小结547
本章练习547
第18章合金弹头548
18.1合金弹头游戏简介549
18.2pygame简介550
18.2.1安装pygame550
18.2.2pygame常用的游戏API551
18.3开发游戏界面组件553
18.3.1游戏界面分析553
18.3.2实现“怪物”类554
18.3.3实现怪物管理559
18.3.4实现“子弹”类560
18.3.5加载、管理游戏图片563
18.3.6让游戏“运行”起来565
18.4增加“角色”566
18.4.1开发“角色”类566
18.4.2添加角色572
18.5合理绘制地图575
18.6增加音效577
18.7增加游戏场景579
18.8本章小结583
本章练习583
第19章数据可视化584
19.1使用Matplotlib生成数据图585
19.1.1安装Matplotlib包585
19.1.2Matplotlib数据图入门586
19.1.3管理图例588
19.1.4管理坐标轴591
19.1.5管理多个子图593
19.2功能丰富的数据图597
19.2.1饼图597
19.2.2柱状图598
19.2.3水平柱状图601
19.2.4散点图602
19.2.5等高线图604
19.2.63D图形605
19.3使用Pygal生成数据图606
19.3.1安装Pygal包606
19.3.2Pygal数据图入门607
19.3.3配置Pygal数据图608
19.4Pygal支持的常见数据图609
19.4.1折线图610
19.4.2水平柱状图和水平折线图611
19.4.3叠加柱状图和叠加折线图612
19.4.4饼图613
19.4.5点图614
19.4.6仪表(Gauge)图615
19.4.7雷达图616
19.5处理数据617
19.5.1CSV文件格式617
19.5.2JSON数据621
19.5.3数据清洗624
19.5.4读取网络数据626
19.6本章小结629
本章练习629
第20章网络爬虫630
20.1安装Scrapy631
20.1.1了解Scrapy631
20.1.2安装Scrapy632
20.2使用爬虫爬取、分析招聘信息634
20.2.1创建Scrapy项目634
20.2.2使用shell调试工具635
20.2.3Scrapy开发步骤638
20.2.4使用JSON导出信息643
20.2.5将数据写入数据库644
20.2.6使用Pygal展示招聘信息645
20.3处理反爬虫646
20.3.1使用shell调试工具分析目标站点646
20.3.2使用Scrapy爬取高清图片649
20.3.3应对反爬虫的常见方法651
20.3.4整合Selenium模拟浏览器行为653
20.4本章小结657
本章练习657