

作 者:(美)斯维加特(Al Sweigart) 著;王海鹏 译 著
定 价:69
出 版 社:人民邮电出版社
出版日期:2016年07月01日
页 数:391
装 帧:平装
ISBN:9787115422699
●部分 Python编程基础
章Python基础3
1.1在交互式环境中输入表达式3
1.2整型、浮点型和字符串数据类型6
1.3字符串连接和复制6
1.4在变量中保存值7
1.4.1赋值语句7
1.4.2变量名9
1.5个程序9
1.6程序剖析11
1.6.1注释11
1.6.2print()函数11
1.6.3input()函数11
1.打印用户的名字12
1.6.5len()函数12
1.6.6str()、int()和float()函数13
1.7小结15
1.8习题15
第2章控制流17
2.1布尔值18
2.2比较操作符19
2.3布尔操作符20
2.3.1二元布尔操作符20
2.3.2not操作符21
2.4混合布尔和比较操作符21
2.5控制流的元素22
2.5.1条件22
2.5.2代码块22
2.6程序执行23
2.7控制流语句23
2.7.1if语句23
2.7.2else语句24
2.7.3elif语句25
2.7.4while循环语句30
2.7.5恼人的循环31
2.7.6break语句33
2.7.7continue语句34
2.7.8for循环和range()函数37
2.7.9等价的while循环39
2.7.10range()的开始、停止和步长参数39
2.8导入模块40
fromimport语句41
2.9用sys.et()提前结束程序41
2.10小结41
2.11习题41
第3章函数43
3.1def语句和参数44
3.2返回值和return语句45
3.3None值46
3.4关键字参数和print()47
3.5局部和全局作用域48
3.5.1局部变量不能在全局作用域内使用48
3.5.2局部作用域不能使用其他局部作用域内的变量49
3.5.3全局变量可以在局部作用域中读取49
3.5.4名称相同的局部变量和全局变量50
3.6global语句50
3.7异常处理52
3.8一个小程序:猜数字54
3.9小结55
3.10习题56
3.11实践项目56
3.11.1Collatz序列56
3.11.2输入验证57
第4章列表59
4.1列表数据类型59
4.1.1用下标取得列表中的单个值60
4.1.2负数下标61
4.1.3利用切片取得子列表61
4.1.4用len()取得列表的长度62
4.1.5用下标改变列表中的值62
4.1.6列表连接和列表复制62
4.1.7用del语句从列表中删除值63
4.2使用列表63
4.2.1列表用于循环
4.2.2in和not in操作符65
4.2.3多重赋值技巧66
4.3增强的赋值操作66
4.4方法67
4.4.1用index()方法在列表中查找值67
4.4.2用append()和insert()方法在列表中添加值68
4.4.3用remove()方法从列表中删除值69
4.4.4用sort()方法将列表中的值排序69
4.5例子程序:神奇8球和列表70
4.6类似列表的类型:字符串和元组71
4.6.1可变和不可变数据类型72
4.6.2元组数据类型73
4.6.3用list()和tuple()函数来转换类型74
4.7引用75
4.7.1传递引用76
4.7.2copy模块的copy()和deepcopy()函数77
4.8小结78
4.9习题78
4.10实践项目79
4.10.1逗号代码79
4.10.2字符图网格79
第5章字典和结构化数据81
5.1字典数据类型81
5.1.1字典与列表82
5.1.2keys()、values()和items()方法83
5.1.3检查字典中是否存在键或值84
5.1.4get()方法84
5.1.5setdefault()方法85
5.2漂亮打印86
5.3使用数据结构对真实世界建模87
5.3.1井字棋盘88
5.3.2嵌套的字典和列表91
5.4小结92
5.5习题93
5.6实践项目93
5.6.1好玩游戏的物品清单93
5.6.2列表到字典的函数,针对好玩游戏物品清单94
第6章字符串操作95
6.1处理字符串95
6.1.1字符串字面量95
6.1.2双引号96
6.1.3转义字符96
6.1.4原始字符串96
6.1.5用三重引号的多行字符串97
6.1.6多行注释97
6.1.7字符串下标和切片98
6.1.8字符串的in和not in操作符98
6.2有用的字符串方法99
6.2.1字符串方法upper()、lower()、isupper()和islower()99
6.2.2isX字符串方法100
6.2.3字符串方法startswith()和endswith()102
6.2.4字符串方法join()和split()102
6.2.5用rjust()、ljust()和center()方法对齐文本103
6.2.6用strip()、rstrip()和lstrip()删除空白字符104
6.2.7用pyperclip模块拷贝粘贴字符串105
6.3项目:口令保管箱106
步:程序设计和数据结构106
第2步:处理命令行参数106
第3步:复制正确的口令107
项目:在Wiki标记中添加无序列表108
步:从剪贴板中复制和粘贴108
第2步:分离文本中的行,并添加星号109
第3步:连接修改过的行109
6.5小结110
6.6习题110
6.7实践项目111
表格打印111
第二部分自动化任务
第7章模式匹配与正则表达式115
7.1不用正则表达式来查找文本模式116
7.2用正则表达式查找文本模式117
7.2.1创建正则表达式对象118
7.2.2匹配Regex对象118
7.2.3正则表达式匹配复习119
7.3用正则表达式匹配更多模式119
7.3.1利用括号分组119
7.3.2用管道匹配多个分组120
7.3.3用问号实现可选匹配121
7.3.4用星号匹配零次或多次121
7.3.5用加号匹配一次或多次122
7.3.6用花括号匹配特定次数122
7.4贪心和非贪心匹配123
7.5findall()方法124
7.6字符分类124
7.7建立自己的字符分类125
7.8插入字符和美元字符126
7.9通配字符126
7.9.1用点-星匹配所有字符127
7.9.2用句点字符匹配换行127
7.10正则表达式符号复习128
7.11不区分大小写的匹配128
7.12用sub()方法替换字符串129
7.13管理复杂的正则表达式129
7.14组合使用re.IGNOREC ASE、re.DOTALL和re.VERBOSE130
7.15项目:电话号码和Email地址提取程序130
步:为电话号码创建一个正则表达式131
第2步:为email地址创建一个正则表达式132
第3步:在剪贴板文本中找到所有匹配132
第4步:所有匹配连接成一个字符串,复制到剪贴板133
第5步:运行程序133
第6步:类似程序的构想134
7.16小结134
7.17习题134
7.18实践项目136
7.18.1强口令检测136
7.18.2strip()的正则表达式版本136
第8章读写文件137
8.1文件与文件路径137
8.1.1Windows上的倒斜杠以及OSX和Linux上的正斜杠138
8.1.2当前工作目录139
8.1.3绝对路径与相对路径139
8.1.4用os.makedirs()创建新文件夹140
8.1.5os.path模块140
8.1.6处理绝对路径和相对路径141
8.1.7查看文件大小和文件夹内容142
8.1.8检查路径有效性143
8.2文件读写过程144
8.2.1用open()函数打开文件145
8.2.2读取文件内容145
8.2.3写入文件146
8.3用shelve模块保存变量147
8.4用pprint.pformat()函数保存变量148
8.5项目:生成随机的测验试卷文件149
步:将测验数据保存在一个字典中149
第2步:创建测验文件,并打乱问题的次序150
第3步:创建答案选项151
第4步:将内容写入测验试卷和答案文件151
8.6项目:多重剪贴板153
步:注释和shelf设置153
第2步:用一个关键字保存剪贴板内容154
第3步:列出关键字和加载关键字的内容154
8.7小结155
8.8习题155
8.9实践项目156
8.9.1扩展多重剪贴板156
8.9.2疯狂填词156
8.9.3正则表达式查找156
第9章组织文件157
9.1shutil模块158
9.1.1复制文件和文件夹158
9.1.2文件和文件夹的移动与改名158
9.1.3删除文件和文件夹160
9.1.4用send2trash模块安全地删除160
9.2遍历目录树161
9.7用zipfile模块压缩文件162
9.3.1读取ZIP文件163
9.3.2从ZIP文件中解压缩1
9.3.3创建和添加到ZIP文件1
9.4项目:将带有美国风格日期的
文件改名为欧洲风格日期165
步:为美国风格的日期创建一个正则表达式165
第2步:识别文件名中的日期部分166
第3步:构文件名,并对文件改名167
第4步:类似程序的想法168
9.5项目:将一个文件夹备份到一个ZIP文件168
步:弄清楚ZIP文件的名称168
第2步:创建新ZIP文件169
第3步:遍历目录树并添加到ZIP文件170
第4步:类似程序的想法170
9.6小结171
9.7习题171
9.8实践项目171
9.8.1选择性拷贝171
9.8.2删除不需要的文件172
9.8.3消除缺失的编号172
0章调试173
10.1抛出异常174
10.2取得反向跟踪的字符串175
10.3断言176
10.3.1在交通灯模拟中使用断言177
10.3.2禁用断言178
10.4日志178
10.4.1使用日志模块178
10.4.2不要用print()调试180
10.4.3日志级别180
10.4.4禁用日志181
10.4.5将日志记录到文件182
10.5IDLE的调试器182
10.5.1Go183
10.5.2Step183
10.5.3Over183
10.5.4Out183
10.5.5Quit183
10.5.6调试一个数字相加的程序184
10.5.7断点185
10.6小结187
10.7习题187
10.7实践项目188
调试硬币抛掷188
1章从Web抓取信息189
11.1项目:利用webbrowser模块的mapIt.py190
步:弄清楚URL190
第2步:处理命令行参数191
第3步:处理剪贴板内容,加载浏览器191
第4步:类似程序的想法192
11.2用requests模块从Web下载文件192
11.2.1用requests.get()函数下载一个网页193
11.2.2检查错误193
11.3将下载的文件保存到硬盘194
11.4HTML195
11.4.1学习HTML的资源195
11.4.2快速复习195
11.4.3查看网页的HTML源代码196
11.4.4打开浏览器的开发者工具197
11.4.5使用开发者工具来寻找HTML元素198
11.5用BeautifulSoup模块解析HTML199
11.5.1从HTML创建一个BeautifulSoup对象200
11.5.2用select()方法寻找元素200
11.5.3通过元素的属性获取数据202
11.6项目:“I’m Feeling Lucky”Google查找202
步:获取命令行参数,并请求查找页面203
第2步:找到所有的结果203
第3步:针对每个结果打开Web浏览器204
第4步:类似程序的想法205
11.7项目:下载所有XKCD漫画205
步:设计程序206
第2步:下载网页207
第3步:寻找和下载漫画图像207
第4步:保存图像,找到前一张漫画208
第4步:类似程序的想法209
11.8用selenium模块控制浏览器210
11.8.1启动selenium控制的浏览器210
11.8.2在页面中寻找元素211
11.8.3点击页面212
11.8.4填写并提交表单212
11.8.5发送特殊键213
11.8.6点击浏览器按钮213
11.8.7关于selenium的更多信息214
11.9小结214
11.10习题214
11.11实践项目215
11.11.1命令行邮件程序215
11.11.2图像网站下载215
11.11.32048215
11.11.4链接验证215
2章处理Excel电子表格217
12.1Excel文档217
12.2安装openpyxl模块218
12.3读取Excel文档218
12.3.1用openpyxl模块打开Excel文档219
12.3.2从工作簿中取得工作表219
12.3.3从表中取得单元格220
12.3.4列字母和数字之间的转换221
12.3.5从表中取得行和列222
12.3.6工作薄、工作表、单元格223
12.4项目:从电子表格中读取数据223
步:读取电子表格数据224
第2步:填充数据结构225
第3步:将结果写入文件226
第4步:类似程序的思想227
12.5写入Excel文档227
12.5.1创建并保存Excel文档227
12.5.2创建和删除工作表228
12.5.3将值写入单元格229
12.6项目:更新一个电子表格229
步:利用更新信息建立数据结构230
第2步:检查所有行,更新不正确的价格231
第4步:类似程序的思想231
12.7设置单元格的字体风格232
12.8Font对象232
12.9公式234
12.10调整行和列235
12.10.1设置行高和列宽235
12.10.2合并和拆分单元格236
12.10.3冻结窗格237
12.10.4图表238
12.11小结240
12.11习题240
12.12实践项目241
12.12.1乘法表241
12.12.2空行插入程序241
12.12.3电子表格单元格翻转程序242
12.12.4文本文件到电子表格242
12.12.5电子表格到文本文件242
3章处理PDF和Word文档243
13.1PDF文档243
13.1.1从PDF提取文本244
13.1.2解密PDF245
13.1.3创建PDF246
13.1.4拷贝页面246
13.1.5旋转页面247
13.1.6叠加页面248
13.1.7加密PDF249
13.2项目:从多个PDF中合并
选择的页面250
步:找到所有PDF文件250
第2步:打开每个PDF文件251
第3步:添加每一页252
第4步:保存结果252
第5步:类似程序的想法253
13.3Word文档253
13.3.1读取Word文档254
13.3.2从.docx文件中取得完整的文本254
13.3.3设置Paragraph和Run对象的样式255
13.3.4创建带有非默认样式的Word文档257
13.3.5Run属性257
13.3.6写入Word文档258
13.3.7添加标题260
13.3.8添加换行符和换页符261
13.3.9添加图像261
13.4小结262
13.5习题262
13.6实践项目263
13.6.1PDF偏执狂263
13.6.2定制邀请函,保存为Word文档263
13.6.3暴力PDF口令破解程序2
4章处理CSV文件和JSON数据265
14.1csv模块265
14.2.1Reader对象266
14.2.2在for循环中,从Reader对象读取数据267
14.2.3Writer对象268
14.2.4delimiter和lineterminator关键字参数269
14.3项目:从CSV文件中删除
表头269
步:循环遍历每个CSV文件270
第2步:读入CSV文件270
第3步:写入CSV文件,没有行271
第4步:类似程序的想法272
14.4JSON和API272
14.5json模块273
14.5.1用loads()函数读取JSON273
14.5.2用dumps函数写出JSON273
14.6项目:取得当前的天气数据274
步:从命令行参数获取位置274
第2步:下载JSON数据275
第3步:加载JSON数据并打印天气275
第4步:类似程序的想法277
14.7小结277
14.8习题277
14.9实践项目277
Excel到CSV的转换程序277
5章保持时间、计划任务和启动程序279
15.1time模块279
15.1.1time.time()函数279
15.1.2time.sleep()函数280
15.2数字四舍五入281
15.3项目:秒表282
步:设置程序来记录时间282
第2步:记录并打印单圈时间283
第3步:类似程序的想法283
15.4datetime模块284
15.4.1timedelta数据类型285
15.4.2暂停直至特定日期286
15.4.3将datetime对象转换为字符串287
15.4.4将字符串转换成datetime对象288
15.5回顾Python的时间函数288
15.6多线程289
15.6.1向线程的目标函数传递参数290
15.6.2并发问题291
15.7项目:多线程XKCD下载程序291
步:修改程序以使用函数292
第2步:创建并启动线程293
第3步:等待所有线程结束293
15.8从Python启动其他程序294
15.8.1向Popen()传递命令行参数295
15.8.2Task Scheduler、launchd和cron296
15.8.3用Python打开网站296
15.8.4运行其他Python脚本296
15.8.5用默认的应用程序打开文件297
15.9项目:简单的倒计时程序298
步:倒计时298
第2步:播放声音文件298
第3步:类似程序的想法299
15.10小结299
15.11习题300
15.12实践项目300
15.12.1美化的秒表300
15.12.2计划的Web漫画下载301
6章发送电子邮件和短信303
16.1SMTP303
16.2发送电子邮件304
16.2.1连接到SMTP服务器304
16.2.2发送SMTP的“Hello”消息305
16.2.3开始TLS加密306
16.2.4登录到SMTP服务器306
16.2.5发送电子邮件306
16.2.6从SMTP服务器断开307
16.3IMAP307
1用IMAP获取和删除电子邮件307
1.1连接到IMAP服务器308
1.2登录到IMAP服务器309
1.3搜索电子邮件309
1.4选择文件夹309
1.5执行搜索310
1.6大小312
1.7取邮件并标记为已读312
1.8从原始消息中获取电子邮件地址313
1.9从原始消息中获取正文314
1.10删除电子邮件315
1.11从IMAP服务器断开315
16.5项目:向会员发送会费提醒电子邮件316
步:打开Excel文件316
第2步:查找所有未付成员317
第3步:发送定制的电子邮件提醒318
16.6用Twilio发送短信319
16.6.1注册Twilio账号319
16.6.2发送短信320
16.7项目:“只给我发短信”模块321
16.8小结322
16.9习题323
16.10实践项目323
16.10.1随机分配家务活的电子邮件程序323
16.10.2伞提醒程序324
16.10.3自动退订324
16.10.4通过电子邮件控制你的电脑324
7章操作图像327
17.1计算机图像基础327
17.1.1颜色和RGBA值328
17.1.2坐标和Box元组329
17.2用Pillow操作图像330
17.2.1处理Image数据类型331
17.2.2裁剪图片332
17.2.3复制和粘贴图像到其他图像333
17.2.4调整图像大小335
17.2.5旋转和翻转图像336
17.2.6更改单个像素338
17.3项目:添加徽标339
步:打开徽标图像340
第2步:遍历所有文件并打开图像341
第3步:调整图像的大小341
第4步:添加徽标,并保存更改342
第5步:类似程序的想法343
17.4在图像上绘画344
17.4.1绘制形状344
17.4.2绘制文本346
17.5小结347
17.6习题348
17.7实践项目348
17.7.1扩展和修正本章项目的程序348
17.7.2在硬盘上识别照片文件夹349
17.7.3定制的座位卡350
8章用GUI自动化控制键盘和鼠标351
18.1安装pyautogui模块351
18.2走对路352
18.2.1通过注销关闭所有程序352
18.2.2暂停和自动防故障装置352
18.3控制鼠标移动353
18.3.1移动鼠标354
18.3.2获取鼠标位置354
18.4项目:“现在鼠标在哪里?”355
步:导入模块355
第2步:编写退出代码和无限循环355
第3步:获取并打印鼠标坐标。356
18.5控制鼠标交互357
18.5.1点击鼠标357
18.5.2拖动鼠标357
18.5.3滚动鼠标359
18.6处理屏幕360
18.6.1获取屏幕快照360
18.6.2分析屏幕快照360
18.7项目:扩展mouseNow程序361
18.8图像识别362
18.9控制键盘363
18.9.1通过键盘发送一个字符串363
18.9.2键名3
18.9.3按下和释放键盘365
18.9.4热键组合365
18.10复习PyAutoGUI的函数366
18.11项目:自动填表程序367
步:弄清楚步骤368
第2步:建立坐标368
第3步:开始键入数据370
第4步:处理选择列表和单选按钮371
第5步:提交表单并等待372
18.12小结372
18.13习题373
18.14实践项目373
18.14.1看起来很忙373
18.14.2即时通信机器人373
18.14.3玩游戏机器人指南374
附录A安装第三方模块375
附录B运行程序377
附录C习题答案381
如今,人们面临的大多数任务都可以通过编写计算机软件来完成。Python是一种解释型、面向对象、动态数据类型的不错程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。
本书是一本面向实践的Python编程实用指南。本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的首部分介绍了基本Python编程概念,第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序,供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识。附录部分提供了所有习题的解答。
本书适合任何想要通过Python学习编程的读者,尤其适合缺乏编程基础的初学者。通过阅读本书,读者将能利用强大的编程语言和工具,并且会体会到Python编程的快乐。
(美)斯维加特(Al Sweigart) 著;王海鹏 译 著