书海网短评:
担心自己基础差学不会?已经看过好几本书python还没入门?本书特色:●一网打尽:巧妙地把python的基础知识点,系统地融入到爬虫、人脸识别、数据抓取与分析、验证码识别等精彩而流行
担心自己基础差学不会?
已经看过好几《毫无障碍学Python》python还没入门?
《毫无障碍学Python》特色:
●一网打尽:巧妙地把python的基础知识点,系统地融入到爬虫、人脸识别、数据抓取与分析、验证码识别等精彩而流行的案例之中,即避免了学习的枯燥性,又亲手完成了案例开发。
●深入浅出:理论与实战无缝融合,一步一图,一点一例,知识点的小例子串联成较大的应用案例。
●成就感十足:案例中用到的每个知识点,都不会让您感觉凭空飞来,这样在案例的实现中就不会有丝毫障碍,让您充分感受学习带来的成就感!
●超值DVD:DVD包含了《毫无障碍学Python》学习所需用到的重点章节视频、所有案例的源代码等资料。
这不是一本简单教你学习Python语法、数据类型、程序结构的书。这也不是一本苦涩难懂、学而不会、例多无用的书。
《毫无障碍学Python》从头一行Python代码开始,就让您轻松感受到学习Python的乐趣。《毫无障碍学Python》经过一线Python开发大师的精心设计,巧妙地把Python的基础知识点融入到了流行、精彩但又经过精心处理的商业案例之中,突出了学习目标的同时,简化了学习难度。一些流行、重要但看似复杂的技术,如爬虫、人脸识别、网页实时数据抓取、文件自动化处理等,跟随《毫无障碍学Python》您都可以轻松掌握并亲手实现。
《毫无障碍学Python》基础讲解系统,案例设计突出精、新、小、实,特别适合于Python学习者自学使用或作为高校大数据、人工智能、云计算等相关专业的教材使用
推荐序
学习资源说明
CH01轻松配置Python开发环境/1
1.1Python编程语言简介/2
1.1.1Python发展史/2
1.1.2Python特色/3
1.2内置的Anaconda开发环境/4
1.2.1安装Anaconda套件/4
1.2.2AnacondaPrompt套件/6
1.2.3在命令窗口运行一个Python程序/9
1.2.4用AnacondaPrompt建立虚拟环境/9
1.2.5IPython交互式命令窗口/12
1.3Spyder编辑器/14
1.3.1启动Spyder编辑器及文件管理/15
1.3.2Spyder智能输入/17
1.3.3程序调试/17
1.4JupyterNotebook编辑器/19
1.4.1启动JupyterNotebook及建立文件/19
1.4.2JupyterNotebook智能输入/20
1.4.3用JupyterNotebook运行程序/21
1.4.4在线运行Python/22
CH02基本语法与结构控制/23
2.1变量与数据类型/24
2.1.1变量/24
2.1.2变量命名规则/25
2.1.3数值、布尔与字符串数据类型/26
2.1.4print及type命令/27
2.1.5数据类型的转换/29
2.2表达式/30
2.2.1input命令/30
2.2.2算术运算符/31
2.2.3关系运算符/31
2.2.4逻辑运算符/32
2.2.5复合赋值运算符/33
2.3条件语句/35
2.3.1程序流程控制/35
2.3.2单向条件(if...)/35
2.3.3双向条件语句(if...else)/37
2.3.4多向条件语句(if...elif...else)/38
2.3.5条件嵌套/40
CH03循环、数据结构及函数/43
3.1循环/44
3.1.1列表(List)结构/44
3.1.2range函数/45
3.1.3for循环/46
3.1.4for循环嵌套/48
3.1.5break及continue命令/49
3.1.6for...if...else循环/50
3.1.7while循环/52
3.2列表、元组结构及字典结构/53
3.2.1高级列表操作/54
3.2.2元组(Tuple)/56
3.2.3字典(Dict)/58
3.2.4高级字典操作/59
3.3函数/62
3.3.1自定义函数/62
3.3.2不定参函数/64
3.3.3变量有效范围/65
3.3.4系统内置函数/66
3.3.5导入包/69
CH04文件处理及SQLite数据库/71
4.1文件和目录管理/72
4.1.1os/72
4.1.2os.path/73
4.1.3os.walk/75
4.1.4shutil包/76
4.1.5glob包/77
4.2open()打开文件/78
4.2.1用open()函数打开文件/78
4.2.2文件操作/81
4.2.3文件操作的应用/85
4.3SQLite数据库/91
4.3.1管理SQLite数据库/91
4.3.2用SQLiteManager创建SQLite数据库/93
4.3.3使用sqlite3包/94
4.3.4用cursor进行数据查询/97
4.3.5SQLite数据库实战/98
CH05Web数据抓取与分析/105
5.1网址解析/106
5.2网页数据抓取/107
5.2.1用requests抓取网页源代码/107
5.2.2搜索指定字符串/108
5.2.3用正则表达式抓取网页内容/109
5.3小试网页分析/114
5.3.1HTML网页结构/114
5.3.2从网页开发界面查看网页源代码/115
5.3.3通过鼠标右键查看网页源代码/116
5.3.4试用BeautifulSoup进行网页抓取与解析/117
5.4牛刀初试——编写你自己的网络爬虫/121
5.4.1抓取北京市PM2.5实时数据/121
5.4.2爬取指定网站的图片/124
CH06实现自动网页测试/127
6.1检查网站数据是否更新/128
6.1.1用hashlib判别文件是否有过更新/128
6.1.2用md5检查网站内容是否更新/128
6.1.3再试牛刀:抓取网络公开数据/129
6.2通过“任务计划程序”实现自动下载/133
6.3用Selenium组件实现浏览器操作自动化/137
6.3.1Selenium组件/138
6.3.2查找网页元素/140
6.3.3应用:自动登录网站/142
CH07绘制图形/145
7.1Matplotlib组件/146
7.1.1Matplotlib基本绘图/146
7.1.2plot方法的参数及图形设置/147
7.1.3在Matplotlib中显示中文/150
7.1.4绘制柱状图及饼图/151
7.1.5实战:爬取我国1990年到2016年GDP数据并绘图显示/154
7.2Bokeh组件/156
7.2.1Bokeh基本绘图/156
7.2.2line方法的参数及图形属性设置/158
7.2.3散点图/161
7.2.4实战:用Bokeh绘制我国GDP数据统计图/163
CH08实战:Word文件操作/167
8.1用Win32com组件操作Word文件/168
8.1.1实现新建文件并保存/168
8.1.2打开文件并显示文件内容/171
8.1.3设置范围的格式/172
8.1.4表格处理/174
8.1.5向Word文件中插入图片/176
8.1.6自动查找替换Word文件中的指定文字/177
8.2实战:菜单自动生成器及批处理替换文字/179
8.2.1实战一:自动生成菜单Word文件/179
8.2.2实战二:批量替换Word文件中的文字/183
CH09实战:PM2.5实时监测显示器/185
9.1Pandas:强大的数据处理套件/186
9.1.1创建DataFrame数据/186
9.1.2读取DataFrame数据/188
9.1.3DataFrame数据的修改及排序/192
9.1.4删除DataFrame数据/193
9.1.5导入数据/194
9.1.6绘制图形/197
9.2实战:PM2.5实时监测显示器/198
9.2.1应用程序总览/198
9.2.2PM2.5公开数据/199
9.2.3用户数据接口配置/200
9.2.4事件处理及函数/202
CH10实战:人脸识别及验证码图片破解/205
10.1OpenCV:人脸识别应用/206
10.1.1用OpenCV读取和显示图形/206
10.1.2保存图像文件/209
10.1.3OpenCV基本绘图/210
10.1.4用OpenCV进行人脸识别/212
10.1.5抓取脸部图形及保存/215
10.1.6抓取摄像头视频图像/217
10.1.7实战:通过人脸识别进行登录/219
10.2用Tesseract识别验证码/223
10.2.1简单的OCR-Tesseract包/223
10.2.2验证码识别的原理/225
10.2.3实战:验证码破解/227
CH11实战:Firebase实时数据库应用/231
11.1Firebase实时数据库/232
11.1.1Firebase实时数据库简介/232
11.1.2创建Firebase实时数据库/232
11.1.3新增Firebase实时数据库资料/234
11.1.4设置数据库权限/235
11.2建立Firebase数据库连接/236
11.2.1使用python-firebase包/236
11.2.2firebase对象的方法/236
11.3实战:Firebase版电子词典/245
11.3.1英汉词典标准版/246
11.3.2英汉词典进阶版/253
CH12实战:批量更改文件夹、文件名及文件查找/259
12.1文件管理应用/260
12.1.1实战:根据指定的编号保存文件/260
12.1.2实战:大批文件复制搬移及重新命名/262
12.1.3实战:找出重复的照片/264
12.1.4实战:把图片文件改为相同大小/266
12.2在多个文件中查找指定的字符/268
12.2.1实战:在多个文本文件中查找/268
12.2.2实战:在Word文件中查找指定字符/269
CH13实战:音乐播放器/273
13.1关于音乐与音乐的播放/274
13.1.1使用pygame包/274
13.1.2mixer对象/274
13.2音效播放/274
13.2.1Sound对象/274
13.2.2实战:制作一个音效播放器/275
13.3音乐播放/278
13.3.1music对象/278
13.3.2实战:制作MP3音乐播放器/278
CH14实战:Pygame游戏开发/283
14.1Pygame入门/284
14.1.1Pygame的基本架构/284
14.1.2基本绘图/286
14.1.3加载图片/288
14.1.4插入文本/290
14.2Pygame动画——让图片动起来/290
14.2.1动画处理程序的基本架构/291
14.2.2水平移动的蓝色球体/291
14.2.3制作一个可自由移动的蓝色球体/293
14.2.4角色类(Sprite)/294
14.2.5碰撞侦测/297
14.2.6检测键盘事件/299
14.2.7鼠标事件/301
14.3实战:俄罗斯方块游戏/303
14.3.1应用程序总览/303
14.3.2球体、方块、滑板的角色类/304
14.3.3自定义方法及主程序/307
CH15把Python打包成可执行文件/311
15.1打包前的准备/312
15.1.1安装PyInstaller/312
15.1.2PyInstaller使用方法/312
15.2制作.exe可执行文件/313
15.2.1以onedir方式制作.exe可执行文件/313
15.2.2实际制作onefile式的.exe文件/314
15.3把项目打包为可执行文件/314
推荐序
—你会不会像我一样喜欢这《毫无障碍学Python》?
●Python,我对它好奇已很久
伴随着爬虫、云计算、大数据、人工智能等一波波狂欢风口,其中有一个让任何“码界新老民工”都无法忽视的存在,那就是Python。不就是一种开发语言吗?但是:
爬虫,为什么是Python,而不是C、Java……?
云计算,为什么是Python,而不是C、Java……?
大数据,为什么是Python,而不是C、Java……?
人工智能,为什么是Python,而不是C、Java……?
更让人诧异的是,不久前我与著名嵌入式开发专家杨国华教授一起讨论工作时了解到,Python在嵌入式开发领域也正在攻城略地,大有燎原之势。嵌入式开发领域不是C家的后院么?
作为一名专职的计算机图书编辑,于公于私,我觉得是时候要深入了解一下Python了。当然,基于我对自己深刻了解(缺脑),我采用了最笨但也最适合我的方法去了解Python,那就是亲自去学一学、用一用。所以,依照网上书店的销售排行买了我的第一本英文翻译版的Python书,结果枯涩且错误百出的翻译耗掉了我为数不多的耐心。我又选了些国产的Python书,或枯燥或无用或超出了我的理解能力……我的要求不高,你只要能让我顺顺利利地比照书上内容做出点东西来就行,如爬虫、抓个网页或者做个人脸识别什么的……
但作为编辑,而且是专业的计算机图书编辑,我对图书的这种状况虽然不满但还是能理解。我知道,想出版一本能让没有编程经验的人好学好懂又有趣的Python书,肯定是不容易的。
●我很喜欢这个简单
由于工作关系,台湾的著名计算机出版公司碁峰公司经常会给我发一些他们最新的图书出版信息,其中我发现了一本讲解Python的书。我大概看了一下简介,发现这《毫无障碍学Python》带有视频讲解,另外从目录中我还发现里面包含了很多我非常感兴趣的内容,如爬虫、网络实时数据抓取、数据分析与展示、人脸识别、验证码破解、Word文件操作、绘图、游戏开发等。
内容看起来很不错,所以利用工作之便,让对方给我寄了一本样书,当然是免费的。我并没有信心以我的基础能读懂这样一《毫无障碍学Python》,也做好了该书只是用花哨的主题来哗众取宠的思想准备。
习惯性地,我先打开随书光盘的第一段视频,这段视频讲的是集成开发环境的安装。根据我的经验,如果只讲安装而不讲配置,可能就说明作者并无太多实战经验。但看完以后,我发现整个Python开发环境的安装的确是根本不需要进行任何配置操作的,如系统路径等。按照书上讲的安装过程,不会出现一点意外。我印象中之前几次尝试学习Java和.Net时,都是在开发环境的安装这一步直接栽了—安装开发环境的过程中不是缺这个就是少那个……
我很怀疑,这么简单的安装操作后我是否真的就可以编写Python程序了。按照书中的操作步骤,我开始把《毫无障碍学Python》第一个简单得不能再简单的小程序代码敲了进去:
a=1
b=2
sum=a+b
print("总和"=+str(sum))
它是那么简单!没看到期待中的变量、语法、程序结构的讲解。
它是那么简单!没有印象中的导入包、头文件,甚至没有变量声明,没有印象中的编译、连接。
它是那么简单!从敲代码到理解代码到运行出结果,前后不到1分钟时间。
更加令我怀疑人生的是,我仅以若干年前在大学里学习C语言时遗留的一些模糊知识,竟然对几行代码完全不感觉困惑……
简单,正是我喜欢的风格。感觉我好像可以跟随这《毫无障碍学Python》走得远一点。
●怀疑地走到最后
一步一步,终于到了我最激动的爬虫制作,此时依然担心我是否真的能按书上所讲亲手爬下一个网页数据,哪怕是一整个网页。事实上,这个过程中也确实遇到了问题,案例中所讲的网站地址是台湾地址,在大陆无法直接访问。百度了半天,解决的办法其实超级简单,把代码中的网址随便换成一个大陆可以访问的网址就可以了……
我竟然做了一个爬虫出来!
又经过后面几个案例,我逐渐意识到《毫无障碍学Python》精妙所在。这的确不是一本哗众取宠、为追求市场热点而编写的书:每个知识点都配有一个小得不能再小但可以独立运行的案例;知识点和案例的先后顺序经过了严格设计,形成了完美的由浅入深但绝不越界的内容结构;每章的综合案例尤其值得称赞,综合案例虽然长一点,却是恰到好处地由前面讲到基本点组成。当然最重要的是,我的的确确亲手将所有实验都做了出来,而且能够完全理解。
难以想象,我跟随《毫无障碍学Python》竟然完成了爬虫、网页实时数据抓取、数据分析与图表制作、文件解析及操作、人脸识别、验证码识别、绘图、游戏以及Python文件的打包等所有案例。
期间,我甚至没有功夫去抱怨别扭的台湾话。
●以权谋私
台湾的碁峰公司免费送我这《毫无障碍学Python》的目的是让我评估这《毫无障碍学Python》是否可以在大陆出版,但我沉浸在学习与收获的快感之中,以至于都忘了给对方回复一个邮件。直到后来碁峰公司再次来信小心翼翼地(我们是甲方)询问此书是否可在大陆出版。
我是如此地喜欢这《毫无障碍学Python》,没有假惺惺地摆一下谱就与对方签订了《毫无障碍学Python》的出版合同。
接下来的工作更加忙碌,为了让读者早日能见到这本我最喜爱的Python书,我同步开始了《毫无障碍学Python》出版准备工作:把繁体版翻译成简体版;把整书的全部程序再运行一遍,重抓实验图片从而把图片中的繁体字转为简体字;把光盘中所有代码中的繁体字变成简体字;把原书案例代码中注释不够详细的地方逐行加了注释(我习惯于假设读者都是我这种水平,注释也许啰嗦,但万一某个读者真与我水平一样甚至还没有我水平高呢?);把一些大陆不能访问的实验案例改为大家可以顺利进行实验的案例……唯一抱歉的是,光盘中的视频我没法重录,好在作者的普通话还可以。
所有这些工作,正常来说在出版社都有专门的人进行处理。我以权谋私全部亲手给包了。一是为了再次享受《毫无障碍学Python》的精彩以对所学知识加以巩固,二是想把我在学习过程中觉得不顺畅的地方变得顺畅。
由于本人水平毕竟有限,错误之处请大家批评指正。书中遇到任何问题可加本人QQ(172559140)进行讨论。
●《毫无障碍学Python》适合谁
《毫无障碍学Python》特别适合于多次尝试学习Python、多次购买Python图书但都半途而废的读者。
《毫无障碍学Python》特别适合于想学Python但却担心自己基础太差而学不会的读者。
《毫无障碍学Python》特别适合于想用Python做点真玩意出来的读者。
但《毫无障碍学Python》不适合于Python资深码农。
希望《毫无障碍学Python》能够真正助您步入Python殿堂。









