Python核心编程(第3版)

Python核心编程(第3版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , , ,
2016-05
版次: 3
ISBN: 9787115414779
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 660页
正文语种: 简体中文
原版书名: Core Python Applications Programming(3rd Edition)
1113人买过
  •   《Python核心编程(第3版)》是经典畅销图书《Python核心编程(第二版)》的全新升级版本,总共分为3部分。第1部分为讲解了Python的一些通用应用,包括正则表达式、网络编程、Internet客户端编程、多线程编程、GUI编程、数据库编程、Microsoft Office编程、扩展Python等内容。第2部分讲解了与Web开发相关的主题,包括Web客户端和服务器、CGI和WSGI相关的Web编程、Django Web框架、云计算、高级Web服务。第3部分则为一个补充/实验章节,包括文本处理以及一些其他内容。  《Python核心编程(第3版)》适合具有一定经验的Python开发人员阅读。   Wesley Chun,在高中阶段开始进入计算世界,当时他使用的是BASIC和6502汇编语言,系统是Commodore。随后开始在App IIe上使用Pascal语言,然后是再在穿孔卡片上使用ForTran语言。正在在穿孔卡片上使用ForTran的经历使他成为一名谨慎小心的开发人员,因为将一组卡片发送到学校的主机并得到返回结果,往往需要一周的往返时间。Wesley还将一个新闻类从打字机改变为Osborne 1 CP/M计算机。他得到的首份有酬劳的工作是作为学生辅导员为四年级、五年级和六年级的学生及其父母家讲授BASIC编程课程。  高中毕业后,Wesley以加利福尼亚校友学者的身份进入加州大学伯克利分校。他主修应用数学(计算机科学),辅修音乐(古典钢琴),并以A级和B级的成绩毕业。在学校期间,他先后使用过Pascal、Logo和C语言编写过程序。他还参加了一个以录像带培训和心理咨询为特色的辅导课程。他的暑期实习项目包括以第4代编程语言编写代码,并编写了一个“Getting Started”用户手册。几年过后,他开始在加州大学圣巴拉拉分校继续学习,并获得了计算机科学(分布式系统)的硕士学位。在此期间,他还讲授C编程课程。他的一片以其硕士论文为基础的论文在第29杰HICSS大会上被提名为论文,其随后的一个论文版本刊登在新加坡大学High Performance Computing杂志上。  自从毕业之后,Wesley就投身于软件行业,编写和出版了多本图书,并且发表了数百篇会议报告和教程。此外还开发了针对公共企业和私有企业培训的Python课程。Wesley的Python使用经历始于Python 1.4版本(当时Python刚刚起步),他使用Python设计了Yahoo!Mail拼写检查程序以及地址簿。他随后成为Yahoo!People Search部门的首席工程师。在离开Yahoo!之后,他写作了本书第1版,然后开始周游世界。回来之后,他使用Python编写过许多程序,包括本地产品搜索程序、反垃圾邮件和防病毒邮件程序、Facebook游戏/应用,以及许多完全不同的其他东西,比如医生用来进行脊柱骨折分析的软件。  在其闲暇时间,Wesley喜欢弹钢琴、打保龄球、打篮球、骑自行车、玩极限飞盘、打扑克、旅行,以及与家人共享人伦。他还是Tutor邮件列表和PyCon这两个Python用户组的志愿者。他还维护着艾伦帕森斯怪物项目目录(Alan Parsons Project Monster Discography)。在本书写作之时,Wesley是Google的开发大使,为其云产品背书。Wesley生活在硅谷,您可以通过@wescpy或plus.ly/wescpy来找到他。 目录  第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 
     第12章 云计算:Google App Engine 470 
     第13章 Web服务 530 
     第3部分 补充/实验章节  第14章 文本处理 553 
     第15章 其他内容 577 
     附录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 
  • 内容简介:
      《Python核心编程(第3版)》是经典畅销图书《Python核心编程(第二版)》的全新升级版本,总共分为3部分。第1部分为讲解了Python的一些通用应用,包括正则表达式、网络编程、Internet客户端编程、多线程编程、GUI编程、数据库编程、Microsoft Office编程、扩展Python等内容。第2部分讲解了与Web开发相关的主题,包括Web客户端和服务器、CGI和WSGI相关的Web编程、Django Web框架、云计算、高级Web服务。第3部分则为一个补充/实验章节,包括文本处理以及一些其他内容。  《Python核心编程(第3版)》适合具有一定经验的Python开发人员阅读。
  • 作者简介:
      Wesley Chun,在高中阶段开始进入计算世界,当时他使用的是BASIC和6502汇编语言,系统是Commodore。随后开始在App IIe上使用Pascal语言,然后是再在穿孔卡片上使用ForTran语言。正在在穿孔卡片上使用ForTran的经历使他成为一名谨慎小心的开发人员,因为将一组卡片发送到学校的主机并得到返回结果,往往需要一周的往返时间。Wesley还将一个新闻类从打字机改变为Osborne 1 CP/M计算机。他得到的首份有酬劳的工作是作为学生辅导员为四年级、五年级和六年级的学生及其父母家讲授BASIC编程课程。  高中毕业后,Wesley以加利福尼亚校友学者的身份进入加州大学伯克利分校。他主修应用数学(计算机科学),辅修音乐(古典钢琴),并以A级和B级的成绩毕业。在学校期间,他先后使用过Pascal、Logo和C语言编写过程序。他还参加了一个以录像带培训和心理咨询为特色的辅导课程。他的暑期实习项目包括以第4代编程语言编写代码,并编写了一个“Getting Started”用户手册。几年过后,他开始在加州大学圣巴拉拉分校继续学习,并获得了计算机科学(分布式系统)的硕士学位。在此期间,他还讲授C编程课程。他的一片以其硕士论文为基础的论文在第29杰HICSS大会上被提名为论文,其随后的一个论文版本刊登在新加坡大学High Performance Computing杂志上。  自从毕业之后,Wesley就投身于软件行业,编写和出版了多本图书,并且发表了数百篇会议报告和教程。此外还开发了针对公共企业和私有企业培训的Python课程。Wesley的Python使用经历始于Python 1.4版本(当时Python刚刚起步),他使用Python设计了Yahoo!Mail拼写检查程序以及地址簿。他随后成为Yahoo!People Search部门的首席工程师。在离开Yahoo!之后,他写作了本书第1版,然后开始周游世界。回来之后,他使用Python编写过许多程序,包括本地产品搜索程序、反垃圾邮件和防病毒邮件程序、Facebook游戏/应用,以及许多完全不同的其他东西,比如医生用来进行脊柱骨折分析的软件。  在其闲暇时间,Wesley喜欢弹钢琴、打保龄球、打篮球、骑自行车、玩极限飞盘、打扑克、旅行,以及与家人共享人伦。他还是Tutor邮件列表和PyCon这两个Python用户组的志愿者。他还维护着艾伦帕森斯怪物项目目录(Alan Parsons Project Monster Discography)。在本书写作之时,Wesley是Google的开发大使,为其云产品背书。Wesley生活在硅谷,您可以通过@wescpy或plus.ly/wescpy来找到他。
  • 目录:
    目录  第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 
     第12章 云计算:Google App Engine 470 
     第13章 Web服务 530 
     第3部分 补充/实验章节  第14章 文本处理 553 
     第15章 其他内容 577 
     附录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 
查看详情
相关图书 / 更多
Python核心编程(第3版)
Python和PySpark数据分析
(加)乔纳森·里乌
Python核心编程(第3版)
Python机器学习入门与实践 从深度学习到生成对抗网络GAN 深入浅出GAN生成对抗网络 实战gan TensorFlow与Keras 人工智能技术书籍
(日)大关真之
Python核心编程(第3版)
Python语言程序设计
王刚
Python核心编程(第3版)
Python代码编程 学科项目式编程(六年级)
冯建刚
Python核心编程(第3版)
Python机器学习 : 核心技术与开发实战 周志华西瓜书机器学习实战伴侣书
[美]普拉提克·乔希 著;李现伟 译者;颉腾文化 出品;阿尔伯托·阿尔塔桑切斯(美);曾小健
Python核心编程(第3版)
Python语言程序设计(微课版)
宁爱军 何志永
Python核心编程(第3版)
Python数据分析从入门到精通(第2版)
明日科技
Python核心编程(第3版)
Python数据分析与挖掘
齐福利
Python核心编程(第3版)
Python基础与应用(互联网+教育新形态一体化系列教材)
李喆时、谢家立、赵丽 编
Python核心编程(第3版)
Python数据分析与可视化项目实战
王振丽
Python核心编程(第3版)
Python爬虫从菜鸟到高手
李宁
Python核心编程(第3版)
Python程序设计基础教程
\"孙海龙 王济军\
您可能感兴趣 / 更多
Python核心编程(第3版)
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
Python核心编程(第3版)
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
Python核心编程(第3版)
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
Python核心编程(第3版)
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
Python核心编程(第3版)
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
Python核心编程(第3版)
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
Python核心编程(第3版)
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
Python核心编程(第3版)
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
Python核心编程(第3版)
汤姆素亚历险记:中小学生课外阅读快乐读书吧 儿童文学无障碍有声伴读世界名著童话故事
[美]马克·吐温
Python核心编程(第3版)
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
Python核心编程(第3版)
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
Python核心编程(第3版)
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译