Python 核心编程 第3版 PDF 文档

发布于 2021-09-19 17:46:59 字数 12750 浏览 1869 评论 0

本书简洁而不失其技术深度,内容丰富全面,历史资料翔实齐全,这让本书成为学习 Python 的完美教程。本书易于阅读,以极简的文字介绍了复杂的案例,同时涵盖了其他同类图书中很少涉及的历史参考资料。简而言之,本书棒极了!

章节指南

本书分为 3 部分。其中第 1 部分占据了本书 2/3 的篇幅,它讲解了应用开发工具箱中(当然,Python 是关注重点)“核心”成员的解决方案。第 2 部分讲解了与 Web 编程相关的各种主题。第 3 部分是补充部分,它提供了一些仍然在开发过程中的实验章节,在本书后续版本中,这些章节有望成为独立的章节。

本书提供了一些高级主题,以展示 Python 可以用来开发什么应用程序。值得高兴的是,本书起码可以向你提供 Python 开发中许多关键领域的入门知识,其中包括之前版本中提到的一些主题。

下载地址

目录

第 1 部分 通用应用主题
第 1 章 正则表达式 2
1.1 简介/动机 3
1.2 特殊符号和字符 5
1.2.1 使用择一匹配符号匹配多个正则表达式模式 6
1.2.2 匹配任意单个字符 6
1.2.3 从字符串起始或者结尾或者单词边界匹配 7
1.2.4 创建字符集 8
1.2.5 限定范围和否定 8
1.2.6 使用闭包操作符实现存在性和频数匹配 9
1.2.7 表示字符集的特殊字符 10
1.2.8 使用圆括号指定分组 10
1.2.9 扩展表示法 11
1.3 正则表达式和 Python 语言 11
1.3.1 re 模块:核心函数和方法 12
1.3.2 使用 compile() 函数编译正则表达式 13
1.3.3 匹配对象以及 group() 和 groups() 方法 14
1.3.4 使用 match() 方法匹配字符串 14
1.3.5 使用 search() 在一个字符串中查找模式(搜索与匹配的对比) 15
1.3.6 匹配多个字符串 16
1.3.7 匹配任何单个字符(.) 16
1.3.8 创建字符集([ ]) 17
1.3.9 重复、特殊字符以及分组 18
1.3.10 匹配字符串的起始和结尾以及单词边界 20
1.3.11 使用 findall() 和 finditer() 查找每一次出现的位置 21
1.3.12 使用 sub() 和 subn() 搜索与替换 22
1.3.13 在限定模式上使用 split() 分隔字符串 23
1.3.14 扩展符号 24
1.3.15 杂项 27
1.4 一些正则表达式示例 28
1.5 更长的正则表达式示例 33
1.5.1 匹配字符串 35
1.5.2 搜索与匹配……还有贪婪 37
1.6 练习 39
第 2 章 网络编程 42
2.1 简介 43
2.2 客户端/服务器架构 43
2.2.1 硬件客户端/服务器架构 43
2.2.2 软件客户端/服务器架构 44
2.2.3 银行出纳员作为服务器吗 44
2.2.4 客户端/服务器网络编程 45
2.3 套接字:通信端点 46
2.3.1 套接字 46
2.3.2 套接字地址:主机-端口对 47
2.3.3 面向连接的套接字与无连接的套接字 47
2.4 Python 中的网络编程 48
2.4.1 socket() 模块函数 49
2.4.2 套接字对象(内置)方法 49
2.4.3 创建 TCP 服务器 51
2.4.4 创建 TCP 客户端 54
2.4.5 执行 TCP 服务器和客户端 56
2.4.6 创建 UDP 服务器 58
2.4.7 创建 UDP 客户端 59
2.4.8 执行 UDP 服务器和客户端 60
2.4.9 socket 模块属性 61
2.5 *SocketServer 模块 62
2.5.1 创建 SocketServer TCP 服务器 63
2.5.2 创建 SocketServer TCP 客户端 64
2.5.3 执行 TCP 服务器和客户端 65
2.6 *Twisted 框架介绍 66
2.6.1 创建 Twisted Reactor TCP 服务器 66
2.6.2 创建 Twisted Reactor TCP 客户端 67
2.6.3 执行 TCP 服务器和客户端 69
2.7 相关模块 69
2.8 练习 70
第 3 章 因特网客户端编程 74
3.1 因特网客户端简介 75
3.2 文件传输 75
3.2.1 文件传输因特网协议 75
3.2.2 文件传输协议 76
3.2.3 Python 和 FTP 77
3.2.4 ftplib.FTP 类的方法 77
3.2.5 交互式 FTP 示例 78
3.2.6 客户端 FTP 程序示例 79
3.2.7 FTP 的其他内容 80
3.3 网络新闻 81
3.3.1 Usenet 与新闻组 81
3.3.2 网络新闻传输协议 82
3.3.3 Python 和 NNTP 83
3.3.4 nntplib.NNTP 类方法 83
3.3.5 交互式 NNTP 示例 84
3.3.6 客户端程序 NNTP 示例 85
3.3.7 NNTP 的其他内容 89
3.4 电子邮件 90
3.4.1 电子邮件系统组件和协议 90
3.4.2 发送电子邮件 91
3.4.3 Python 和 SMTP 92
3.4.4 smtplib.SMTP 类方法 92
3.4.5 交互式 SMTP 示例 93
3.4.6 SMTP 的其他内容 94
3.4.7 接收电子邮件 94
3.4.8 POP 和 IMAP 95
3.4.9 Python 和 POP3 95
3.4.10 交互式 POP3 示例 96
3.4.11 poplib.POP3 类方法 97
3.4.12 客户端程序 SMTP 和 POP3 示例 98
3.4.13 Python 和 IMAP4 100
3.4.14 交互式 IMAP4 示例 100
3.4.15 imaplib.IMAP4 类中的常用方法 101
3.5 实战 102
3.5.1 生成电子邮件 102
3.5.2 解析电子邮件 104
3.5.3 基于 Web 的云电子邮件服务 105
3.5.4 最佳实践:安全、重构 106
3.5.5 Yahoo! Mail 108
3.5.6 Gmail 112
3.6 相关模块 115
3.6.1 电子邮件 115
3.6.2 其他因特网客户端协议 115
3.7 练习 116
第 4 章 多线程编程 122
4.1 简介/动机 123
4.2 线程和进程 124
4.2.1 进程 124
4.2.2 线程 124
4.3 线程和 Python 125
4.3.1 全局解释器锁 125
4.3.2 退出线程 126
4.3.3 在 Python 中使用线程 126
4.3.4 不使用线程的情况 126
4.3.5 Python 的 threading 模块 128
4.4 thread 模块 128
4.5 threading 模块 132
4.5.1 Thread 类 133
4.5.2 threading 模块的其他函数 139
4.6 单线程和多线程执行对比 140
4.7 多线程实践 142
4.7.1 图书排名示例 142
4.7.2 同步原语 149
4.7.3 锁示例 149
4.7.4 信号量示例 156
4.8 生产者-消费者问题和 Queue/queue 模块 159
4.9 线程的替代方案 162
4.9.1 subprocess 模块 163
4.9.2 multiprocessing 模块 163
4.9.3 concurrent.futures 模块 163
4.10 相关模块 165
4.11 练习 165
第 5 章 GUI 编程 168
5.1 简介 169
5.1.1 Tcl、Tk 和 Tkinter 169
5.1.2 安装和使用 Tkinter 170
5.1.3 客户端/服务端架构 170
5.2 Tkinter 和 Python 编程 170
5.2.1 Tkinter 模块:添加 Tk 到应用中 171
5.2.2 GUI 编程介绍 171
5.2.3 顶层窗口:Tkinter.Tk() 173
5.2.4 Tk 控件 173
5.3 Tkinter 示例 174
5.3.1 Label 控件 174
5.3.2 Button 控件 175
5.3.3 Label 和 Button 控件 175
5.3.4 Label、Button 和 Scale 控件 176
5.3.5 偏函数应用示例 178
5.3.6 中级 Tkinter 示例 180
5.4 其他 GUI 简介 185
5.4.1 Tk 接口扩展(Tix) 187
5.4.2 Python MegaWidgets(PMW) 188
5.4.3 wxWidgets 和 wxPython 188
5.4.4 GTK+和 PyGTK 190
5.4.5 Tile/Ttk 192
5.5 相关模块和其他 GUI 194
5.6 练习 196
第 6 章 数据库编程 198
6.1 简介 199
6.1.1 持久化存储 199
6.1.2 数据库基本操作和 SQL 199
6.1.3 数据库和 Python 201
6.2 Python 的 DB-API 203
6.2.1 模块属性 203
6.2.2 Connection 对象 205
6.2.3 Cursor 对象 206
6.2.4 类型对象和构造函数 207
6.2.5 关系数据库 209
6.2.6 数据库和 Python:适配器 210
6.2.7 使用数据库适配器的示例 210
6.2.8 数据库适配器示例应用 215
6.3 ORM 226
6.3.1 考虑对象,而不是 SQL 227
6.3.2 Python 和 ORM 227
6.3.3 员工角色数据库示例 228
6.3.4 SQLAlchemy 229
6.3.5 SQLObject 240
6.4 非关系数据库 245
6.4.1 NoSQL 介绍 245
6.4.2 MongoDB 246
6.4.3 PyMongo:MongoDB 和 Python 246
6.4.4 总结 250
6.5 相关文献 250
6.6 练习 252
第 7 章 *Microsoft Office 编程 256
7.1 简介 257
7.2 使用 Python 进行 COM 客户端编程 257
7.2.1 客户端 COM 编程 258
7.2.2 入门 258
7.3 入门示例 259
7.3.1 Excel 259
7.3.2 Word 261
7.3.3 PowerPoint 262
7.3.4 Outlook 264
7.4 中级示例 266
7.4.1 Excel 266
7.4.2 Outlook 268
7.4.3 PowerPoint 273
7.4.4 总结 280
7.5 相关模块/包 281
7.6 练习 281
第 8 章 扩展 Python 286
8.1 简介和动机 287
8.1.1 Python 扩展简介 287
8.1.2 什么情况下需要扩展 Python 288
8.1.3 什么情况下不应该扩展 Python 288
8.2 编写 Python 扩展 289
8.2.1 创建应用代码 289
8.2.2 根据样板编写封装代码 291
8.2.3 编译 296
8.2.4 导入并测试 297
8.2.5 引用计数 300
8.2.6 线程和全局解释器锁 301
8.3 相关主题 302
8.3.1 SWIG 302
8.3.2 Pyrex 302
8.3.3 Cython 302
8.3.4 Psyco 303
8.3.5 PyPy 303
8.3.6 嵌入 Python 304
8.4 练习 304
第 2 部分 Web 开发
第 9 章 Web 客户端和服务器 306
9.1 简介 307
9.1.1 Web 应用:客户端/服务器计算 307
9.1.2 因特网 308
9.2 Python Web 客户端工具 310
9.2.1 统一资源定位符 310
9.2.2 urlparse 模块 312
9.2.3 urllib 模块/包 313
9.2.4 使用 urllib2 HTTP 验证的示例 317
9.2.5 将 HTTP 验证示例移植到 Python 3 中 319
9.3 Web 客户端 322
9.3.1 一个简单的 Web 爬虫/蜘蛛/机器人 322
9.3.2 解析 Web 页面 328
9.3.3 可编程的 Web 浏览 333
9.4 Web(HTTP)服务器 336
9.5 相关模块 339
9.6 练习 341
第 10 章 Web 编程:CGI 和 WSGI 345
10.1 简介 346
10.2 帮助 Web 服务器处理客户端数据 346
10.2.1 CGI 简介 346
10.2.2 CGI 应用程序 347
10.2.3 cgi 模块 348
10.2.4 cgitb 模块 348
10.3 构建 CGI 应用程序 349
10.3.1 构建 Web 服务器 349
10.3.2 建立表单页 351
10.3.3 生成结果页面 352
10.3.4 生成表单和结果页面 353
10.3.5 全面交互的 Web 站点 357
10.4 在 CGI 中使用 Unicode 362
10.5 高级 CGI 364
10.5.1 mulitipart 表单提交和文件上传 364
10.5.2 多值字段 364
10.5.3 cookie 365
10.5.4 cookie 和文件上传 365
10.6 WSGI 简介 373
10.6.1 动机(替代 CGI) 373
10.6.2 服务器集成 374
10.6.3 外部进程 374
10.6.4 WSGI 简介 375
10.6.5 WSGI 服务器 376
10.6.6 参考服务器 377
10.6.7 WSGI 应用示例 378
10.6.8 中间件及封装 WSGI 应用 378
10.6.9 在 Python 3 中使用 WSGI 379
10.7 现实世界中的 Web 开发 380
10.8 相关模块 380
10.9 练习 381
第 11 章 Web 框架:Django 384
11.1 简介 385
11.2 Web 框架 385
11.3 Django 简介 386
11.4 项目和应用 390
11.4.1 在 Django 中创建项目 390
11.4.2 运行开发服务器 393
11.5 “Hello World”应用(一个博客) 394
11.6 创建模型来添加数据库服务 396
11.6.1 设置数据库 396
11.6.2 创建表 398
11.7 Python 应用 shell 400
11.7.1 在 Django 中使用 Python shell 400
11.7.2 测试数据模型 402
11.8 Django 管理应用 403
11.8.1 设置 admin 403
11.8.2 使用 admin 404
11.9 创建博客的用户界面 410
11.9.1 创建模板 411
11.9.2 创建 URL 模式 412
11.9.3 创建视图函数 415
11.10 改进输出 418
11.11 处理用户输入 422
11.11.1 模板:添加 HTML 表单 423
11.11.2 添加 URLconf 项 423
11.11.3 视图:处理用户输入 423
11.11.4 跨站点请求伪造 424
11.12 表单和模型表单 426
11.12.1 Django 表单简介 426
11.12.2 模型表单示例 427
11.12.3 使用 ModelForm 来生成 HTML 表单 427
11.12.4 处理 ModelForm 数据 428
11.13 视图进阶 429
11.14 *改善外观 431
11.15 *单元测试 432
11.15.1 blog 应用的代码审查 434
11.15.2 blog 应用总结 439
11.16 *中级 Django 应用:TweetApprover 439
11.16.1 创建项目文件结构 440
11.16.2 安装 Twython 库 445
11.16.3 URL 结构 446
11.16.4 数据模型 449
11.16.5 提交新推文以便审核 453
11.16.6 审核推文 457
11.17 资源 465
11.18 总结 465
11.19 练习 466
第 12 章 云计算:Google App Engine 470
12.1 简介 471
12.2 云计算 471
12.2.1 云计算服务的层次 472
12.2.2 App Engine 473
12.3 沙盒和 App Engine SDK 476
12.4 选择一个 App Engine 框架 479
12.5 Python 2.7 支持 485
12.5.1 一般差异 486
12.5.2 代码中的差异 486
12.6 与 Django 比较 487
12.6.1 开始“Hello World” 487
12.6.2 手动创建“Hello World”(Zip 文件用户) 488
12.7 将“Hello World”改成一个 简单的博客 489
12.7.1 快速发现改动:30 秒内将纯文本转成 HTML 489
12.7.2 添加表单 490
12.7.3 添加 Datastore 服务 492
12.7.4 迭代改进 496
12.7.5 开发/SDK 控制台 496
12.8 添加 Memcache 服务 502
12.9 静态文件 505
12.10 添加用户服务 505
12.10.1 Google 账号验证 506
12.10.2 联合验证 507
12.11 远程 API shell 507
12.12 问与答(Python 实现) 509
12.12.1 发送电子邮件 509
12.12.2 接收电子邮件 510
12.13 使用 XMPP 发送即时消息 512
12.14 处理图片 514
12.15 任务队列(非定期任务) 514
12.15.1 创建任务 515
12.15.2 配置 app.yaml 515
12.15.3 其他任务创建选项 516
12.15.4 将发送电子邮件作为任务 517
12.15.5 deferred 包 519
12.16 使用 Appstats 进行分析 520
12.16.1 在 app.yaml 中添加标准处理程序 521
12.16.2 添加自定义 Admin Console 页面 521
12.16.3 作为内置界面启用界面 521
12.17 URLfetch 服务 522
12.18 问与答(无 Python 实现) 522
12.18.1 Cron 服务(计划任务作业) 523
12.18.2 预热请求 523
12.18.3 DoS 保护 524
12.19 厂商锁定 524
12.20 资源 525
12.21 总结 526
12.22 练习 527
第 13 章 Web 服务 530
13.1 简介 531
13.2 Yahoo!金融股票报价服务器 531
13.3 Twitter 微博 534
13.3.1 社交网络 534
13.3.2 Twitter 和 Python 535
13.3.3 稍微长一点的 API 组合应用示例 537
13.3.4 总结 547
13.3.5 额外在线资源 548
13.4 练习 548
第 3 部分 补充/实验章节
第 14 章 文本处理 553
14.1 逗号分隔值(CSV) 554
14.1.1 CSV 简介 554
14.1.2 再论股票投资组合示例 556
14.2 JSON 557
14.3 可扩展标记语言 561
14.3.1 XML 简介 562
14.3.2 Python 和 XML 562
14.3.3 XML 实战 566
14.3.4 *使用 XML-RPC 的客户端-服务器服务 569
14.4 参考文献 573
14.5 相关模块 574
14.6 练习 574
第 15 章 其他内容 577
15.1 Jython 578
15.1.1 Jython 简介 578
15.1.2 Swing GUI 开发示例 579
15.2 Google+ 581
15.2.1 Google+平台简介 582
15.2.2 Python 和 Google+API 582
15.2.3 一个简单的社交媒体分析工具 582
15.3 练习 590
附录 A 部分练习参考答案 593
附录 B 参考表 597
B.1 Python 关键字 597
B.2 Python 标准操作符和函数 598
B.3 数值类型操作符和函数 599
B.4 序列类型操作符和函数 600
B.5 字符串格式化操作符转换符号 602
B.6 字符串格式化操作符指令 603
B.7 字符串类型内置方法 603
B.8 列表类型内置方法 605
B.9 字典类型内置方法 605
B.10 集合类型操作符和内置函数 606
B.11 文件对象方法和数据属性 607
B.12 Python 异常 608
B.13 类的特殊方法 610
B.14 Python 操作符汇总 612
附录 C Python 3:一种编程语言进化的产物 614
C.1 为何 Python 在变化 614
C.2 都发生了哪些变化 615
C.2.1 print 变成了 print() 615
C.2.2 字符串:默认为 Unicode 编码 616
C.2.3 单类类型 616
C.2.4 更新异常的语法 617
C.2.5 整数的更新 618
C.2.6 迭代器无处不在 619
C.3 迁移工具 619
C.3.1 2to3 工具 619
C.3.2 Python 2.6+ 620
C.4 结论 620
C.5 参考资料 620
附录 D 利用 Python 2.6+向 Python 3 迁移 622
D.1 Python 3:Python 的下一代 622
D.2 整数 623
D.2.1 单整数类型 624
D.2.2 新型二进制和改进的八进制字符 624
D.2.3 经典除法或真除法 625
D.3 内置函数 626
D.3.1 print 语句或 print() 函数 626
D.3.2 reduce() 转移到了 functools 模块中 627
D.3.3 其他更新 627
D.4 面向对象编程:两种不同的类对象 628
D.5 字符串 629
D.6 异常 630
D.6.1 处理异常(使用 as) 630
D.6.2 抛出异常 630
D.7 其他转换工具和技巧 631
D.8 编写兼容版本 2.x 和 3.x 的代码 632
D.8.1 对比 print 和 print() 632
D.8.2 将你的方法导入解决方案中 633
D.8.3 整合在一起 634
D.9 结论 635

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

寄与心

文章 0 评论 0

13545243122

文章 0 评论 0

流星番茄

文章 0 评论 0

春庭雪

文章 0 评论 0

潮男不是我

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文