发表于2024-11-05
目 录
第1章 Python核心知识回顾 1
1.1 探索Python语言和解释器 1
1.2 回顾Python数据类型 3
1.2.1 数值类型:整数和浮点数 4
1.2.2 布尔类型 5
1.2.3 None类型 6
1.2.4 容器类型 6
1.2.5 字符串 7
1.2.6 字节和字节数组 9
1.2.7 元组 10
1.2.8 列表 11
1.2.9 字典 12
1.2.10 集 13
1.3 使用Python控制结构 15
1.3.1 结构化你的程序 15
1.3.2 使用序列、块和注释 16
1.3.3 选择一个执行路径 17
1.3.4 迭代 18
1.3.5 异常处理 20
1.3.6 上下文管理 21
1.4 在Python中读取和输出数据 21
1.4.1 与用户交互 21
1.4.2 使用文本文件 23
1.5 扩展Python 24
1.5.1 定义并使用函数 24
1.5.2 定义并使用类和对象 28
1.6 创建和使用模块和包 32
1.6.1 使用和创建模块 33
1.6.2 使用和创建包 34
1.7 创建示例包 35
1.8 使用第三方包 42
1.9 本章小结 43
第2章 Python脚本 47
2.1 访问操作系统 48
2.1.1 获得关于用户和他们的电脑的信息 49
2.1.2 获得当前进程信息 52
2.1.3 管理其他程序 54
2.1.4 更加高效地管理子进程 57
2.1.5 获取文件(和设备)的信息 60
2.1.6 浏览和操纵文件系统 62
2.1.7 探索目录树深度 68
2.2 使用日期和时间 71
2.2.1 使用time模块 71
2.2.2 datetime模块介绍 74
2.2.3 calendar模块介绍 75
2.3 处理常见的文件格式 76
2.3.1 使用逗号分隔的数值 76
2.3.2 使用Config文件 82
2.3.3 操作XML和HTML文件 85
2.4 使用ctypes和pywin32访问原生API 93
2.4.1 访问操作系统库 94
2.4.2 使用COM访问Windows应用 96
2.5 涉及多应用的自动化任务 97
2.5.1 使用Python 98
2.5.2 使用操作系统工具 98
2.5.3 使用数据文件 98
2.5.4 使用第三方模块 98
2.5.5 通过命令行接口与子进程交互 99
2.5.6 为基于服务器的应用使用Web服务 99
2.5.7 使用一个原生代码API 99
2.5.8 使用GUI机器人学 99
2.6 本章小结 100
第3章 管理数据 103
3.1 使用Python存储数据 104
3.1.1 使用DBM作为持久化字典 104
3.1.2 使用Pickle存取对象 109
3.1.3 使用shelve访问对象 111
3.2 使用Python分析数据 116
3.2.1 使用Python的内置特性分析数据 116
3.2.2 使用itertools分析数据 119
3.2.3 使用itertools分析LendyDB数据 124
3.3 使用SQL管理数据 126
3.3.1 关系型数据库的概念 126
3.3.2 结构化查询语言 127
3.3.3 跨表链接数据 134
3.3.4 多对多关系 140
3.4 从LendyDB迁移到SQL
数据库 143
3.4.1 从Python访问SQL 143
3.4.2 创建LendyDB SQL数据库 145
3.4.3 插入测试数据 146
3.4.4 创建一个LendyDB API 148
3.5 探索其他数据管理选择 154
3.5.1 主从数据库 154
3.5.2 NoSQL 155
3.5.3 云计算 155
3.5.4 使用RPy进行数据分析 156
3.6 本章小结 157
第4章 创建桌面应用 161
4.1 组织应用程序 162
4.2 创建命令行界面 163
4.2.1 创建数据层 163
4.2.2 创建核心逻辑层 165
4.2.3 创建用户界面 169
4.3 使用cmd模块创建命令行界面 173
4.4 读取命令行参数 175
4.5 用一些对话框让命令行界面变得生动 176
4.6 使用Tkinter编程GUI 180
4.7 创建简单的GUI 183
4.8 创建Tic-Tac-Toe GUI 186
4.8.1 勾勒一个UI设计 186
4.8.2 创建菜单 187
4.8.3 创建Tic-Tac-Toe面板 188
4.8.4 将GUI连接到游戏 189
4.9 扩展Tkinter 194
4.9.1 使用tix 194
4.9.2 使用ttk 198
4.10 再次回顾借出库 199
4.11 探索其他Python GUI工具包 207
4.11.1 wxPython 207
4.11.2 PyQt 208
4.11.3 PyGTK 209
4.11.4 原生GUI:Cocoa和PyWin32 209
4.11.5 Dabo 210
4.12 存储本地数据 210
4.12.1 存储特定于应用的数据 211
4.12.2 存储用户选择偏好 211
4.12.3 存储应用状态 212
4.12.4 记录错误信息 212
4.13 理解本地化 214
4.13.1 使用区域设置 214
4.13.2 在Python中使用Unicode 216
4.13.3 使用gettext 218
4.14 本章小结 220
第5章 Python在Web中的应用 223
5.1 Python在Web中的应用 224
5.1.1 Web应用的组成部分 225
5.1.2 客户端-服务器关系 226
5.1.3 中间件和MVC 226
5.1.4 HTTP方法和头信息 227
5.1.5 什么是API 230
5.2 使用Python进行Web编程 234
5.3 有关Python和Web的更多知识 247
5.3.1 静态网站生成器 247
5.3.2 Web框架 247
5.4 使用Python跨网工作 248
5.4.1 XML-RPC 248
5.4.2 套接字服务器 249
5.5 更多Python网络编程的乐趣 252
5.6 本章小结 253
第6章 Python在更大项目中的应用 255
6.1 使用doctest模块测试 256
6.2 使用unittest模块测试 261
6.3 Python中的测试驱动开发 265
6.4 调试Python代码 266
6.5 工作在更大的Python项目中 275
6.6 发布Python包 279
6.7 本章小结 281
第7章 探索Python前沿技术 283
7.1 使用Python绘图 283
7.1.1 使用turtle graphics 284
7.1.2 使用GUI Canvas对象 284
7.1.3 绘制数据 284
7.1.4 使用imghdr 285
7.1.5 Pillow简介 285
7.1.6 试试ImageMagick 285
7.2 使用Python辅助科学 286
7.2.1 SciPy简介 286
7.2.2 使用Python辅助生物科学 287
7.2.3 使用GIS 287
7.2.4 处理语言 287
7.2.5 综述 288
7.3 使用Python开发游戏 288
7.3.1 增强PyGame经验 288
7.3.2 探索其他选项 289
7.4 进入电影领域 289
7.5 与其他语言集成 290
7.5.1 Jython 291
7.5.2 IronPython 291
7.5.3 Cython 292
7.5.4 Tcl/Tk 292
7.6 进入物理领域 293
7.6.1 serial选项介绍 293
7.6.2 RaspberryPi编程 294
7.6.3 与Arduino对话 294
7.6.4 探索其他选项 294
7.7 创建Python 295
7.7.1 修复bug 295
7.7.2 文档化 295
7.7.3 测试 295
7.7.4 添加特性 296
7.7.5 参加会议 296
7.8 本章小结 296
附录A 练习答案 299
附录B Python标准模块 315
附录C 可用Python资源 323
前 言
在某年的一次会议后,发到PyLadies组织者邮件列表的一封邮件问:“有人有兴趣写一本Python方面的书吗?”当时,我已经考虑撰写一本编程书很久了。在多年教课以及在PyLadies和其他编程聚会做指导之后,我意识到需要一本新的、特定类型的编程书。但是我并没有马上回复那封邮件。我知道写一本书是一项巨大的工程(确实是!),会耗费我大量的时间和精力。我在周末和节假日也要工作(是的,我又对了!)。我也知道我有一份教授编程课程的全职工作,同时也是乔治亚州亚特兰大本地PyLadies的主要组织者。我的孩子也会开始问我:“这个周末你要写书吗?”
以上内容都是真实的(实际上比我最初的想法还要多),但是我知道书籍很重要。非常多的学生会在课后问我:“现在我已经了解Python基础知识了,我能做些什么呢?”我的答案总是:“你可以参与一些开源项目!”或者“参加一些Python高级课程”。但是这些答案既不能让他们满意也不能让我满意。正确答案应该是:“你必须真正地寻找一些事情来做:解决一个问题或实现一个需求”。这是因为,真正理解编程和一门编程语言的唯一方式就是用这门语言去解决问题。
然而,另一个问题又出现了:“我没有真正需要解决的问题”。所以,虽然我可以让我的学生去了解开源项目,而这实际上也非常有帮助,但是如果不了解技术,他们可能会迷失,甚至放弃。这样社区就又失去了一位可能带来有趣东西的程序员。所以,在与家人和朋友做大量交流之后,我意识到需要撰写这本书。
本书目的
多年以来,一直有人问我们,“我在熟悉Python基础后能做些什么?”,“我能学到什么?”,“我该何去何从?”。解决以上问题就是撰写本书的目的所在。
对于编程书籍来说,很多人都曾经历过的一个长期问题是它们都是从语言基础到深层概念。这些概念只有拥有计算机科学学位的人才能理解。但这并不酷!编程的大门应该向任何有兴趣的人敞开。我们都应该致力于降低编程的门槛。我们觉得Python做到了这一点,但是我们需要更进一步,并且开始理解人们是如何学习抽象想法和概念的,帮助他们学习编程。
可以将编程想象成学习如何盖房子,只知道需要木料,但是不知道如何用木料盖房子。你仍然需要理解结构工程、电气、水管设施、通风、高压交流电(High Voltage Alternating Current,HVAC)等。编程也是一样。语言只解释了盖房子需要木料。还有很多与木料相关的东西。我们希望帮助你了解这些概念。
本书读者对象
本书并不适合想要学习Python的初学者。实际上,作为本书的读者,你需要拥有一些Python编程基础。这意味着你已经学过一些教程。你也应该理解空格在Python中的作用、列表被包含在方括号([])中、但字典被包含在花括号({})中。本书适用于那些初学者,但应该已经学过一两个教程。这些人理解Python基础,但对Python可以实现的功能很感兴趣。
俗语说的好,需要是发明之母。在你学习编程时,这句话非常正确。如果你需要软件来执行特定函数或任务,那么围绕着需求学习一门语言就很容易。你有需求,语言就会帮助你,学习语言,解决问题,你学到了知识,并且立即付诸实践。这太棒了!然而,如果你觉得编程很有趣,但却没有需求,不知道要实现什么,结果会怎样呢?这就是本书要解决的问题。
本书会帮助你学习大部分人不会对初学者讲述的Python部分。书中涉及的大部分工具和技术只有在实践中才会遇到。然而,对于没有特定问题需要解决的新手程序员来说,学习这些工具可能比较困难。在很长一段时间里,没有人想要向开发者介绍这些工具,因为它们真的很常用。我们希望可以带你领略Python的能力和辉煌。
你将学习如何编写一个Web应用,以及如何使用Python库与数据库通信。如果你是一名系统管理员,还可以学到可以加速工作流的系统工具。我们将简要介绍诸如安全和最佳实践的话题,概述如何使用Python库创建图形用户界面(GUI)。还将介绍如何编写和使用应用编程接口(Application Programming Interfaces,API),以及其他对Python程序员有用的话题。
本书内容简介
我们希望带你简要了解一下Python的基础知识,将向你介绍那些只有在解决问题时才会理解的概念。尽管我们不能在这里呈现所有将来可能需要解决的问题,但是我们希望可以为Python新手展示Python语言的强大特性和可以使用的包和技术。
首先,提供一个Python的速成课程,以防你已经忘记了所有东西。我们将复习基础知识,然后你可以决定是否完整阅读该章。接下来,将从脚本语言的角度来重新审视Python。通过尝试使用Python编写一些小脚本来访问你的系统。这可以展示Python让你所拥有的非常基本的能力。之后会讨论数据,这其实就是编程的一切——操纵数据。你会使用Python提供的标准库来完成一些示例。我们甚至会讨论数据库,这样就可以对它有一个基本了解。我们想让你了解并接触系统中可能会接触到的每个部分。
在前三章之后,将介绍桌面应用。尽管这些在Python中并不常用,但也是语言的一个特性。在你的整个Python程序员的生涯中它都非常有用。接下来将介绍Internet。这时,Python会充当数据通信工具。你将学习有关HTTP和Web的所有知识,以及网站在底层的工作方式,甚至会动手编写和使用API。很多新手程序员对API都很迷惑。我们希望在本章揭开它神秘的面纱。
在最后几章,将介绍Python中一些更高级的话题,例如,如何在更大的项目中使用Python、调试代码、创建测试模块、错误处理,以及创建自定义的异常和异常处理器。你在使用本书时、在将来查阅本书时、在使用Python编程时,都可以使用索引快速找到你想要的内容。
本书信息量很大,其中包含大量的工具和想法,可帮助你开始使用Python。我们希望你可以自己动手尝试,并且花时间在你感兴趣的概念和想法上做更多功课。在本书中,已经包含了大量实践练习来帮助你尝试新概念。在大多数章节中,还包含了一些挑战性问题,以帮助你巩固新知识。
使用本书须知
为了更好地使用本书,建议你所使用的现代计算机能够运行Python 3.3或更新版本,有一个能够舒适使用的好的文本编辑器,具有Internet连接(本书一些部分会使用),以及足够的耐心和求知欲。我们也建议你使用Internet搜索任何遇到的问题。专业程序员实际上并不是什么都会。他们通常只知道那些每天需要处理的问题,他们的大部分时间都花在搜索和追踪问题发生的原因上。不要觉得依赖Google解决问题是很让人沮丧的。有时,使用Google搜索问题的能力和你的编程能力是同样重要的。
在使用本书的示例和项目时,你可能需要源代码。示例的源文件可以通过Wrox网站和下载。
源代码
在完成本书示例时,可以选择手动输入所有代码,也可以使用本书附带的源代码。本书中用到的所有源代码都可以从下载。对于本书,源代码下载的具体位置在的Download Code选项卡下。
可以在搜索本书的ISBN(本书的ISBN是978-1-118-90866-2)来寻找代码。上列出了当前所有Wrox书籍的完整代码下载列表。
上的大部分代码是使用.ZIP、.RAR或适用于当前平台的类似压缩格式压缩的。下载之后,使用合适的解压缩工具解压即可。
勘误表
尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。
要在网站上找到本书的勘误表,可以登录,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是 booklist.shtml。
如果在Book Errata页面上没有看到你找出的错误,请进入 techsupport.shtml,填写表单,发电子邮件,我们就会检查你的信息,如果是正确的,就在本书的勘误表中粘贴一个消息,我们将在本书的后续版本中采用。
p2p.wrox.com
P2P邮件列表是为作者和读者之间的讨论而建立的。读者可以在p2p.wrox.com上加入P2P论坛。该论坛是一个基于Web的系统,用于传送与Wrox图书相关的信息和相关技术,与其他读者和技术用户交流。该论坛提供了订阅功能,当论坛上有新帖子时,会给你发送你选择的主题。Wrox作者、编辑和其他业界专家和读者都会在这个论坛上进行讨论。
在上有许多不同的论坛,帮助读者阅读本书,在读者开发自己的应用程序时,也可以从这个论坛中获益。要加入这个论坛,必须执行下面的步骤:
(1) 进入,单击Register链接。
(2) 阅读其内容,单击Agree按钮。
(3) 提供加入论坛所需的信息及愿意提供的可选信息,单击Submit按钮。
(4) 然后就可以收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。
加入论坛后,就可以发送新信息,回应其他用户的帖子。可以随时在Web上阅读信息。如果希望某个论坛给自己发送新信息,可以在论坛列表中单击该论坛对应的Subscribe to this Forum图标。
对于如何使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作原理,以及许多针对P2P和Wrox图书的常见问题解答。要阅读FAQ,可以单击任意P2
Python项目开发实战 下载 mobi epub pdf txt 电子书 格式
Python项目开发实战 下载 mobi pdf epub txt 电子书 格式 2024
Python项目开发实战 下载 mobi epub pdf 电子书东西很好,很喜欢,先去看了
评分指导性强,很实用,值得推荐
评分比较全,各方面,无论是例子还是源码,对工作学习有帮助,基本上是市面上现有的前几名的python书了,略厚?
评分不错了,活动价格便宜
评分可以,不错,值得学习!
评分降的倒是挺全的,但就是有些地方讲的不够详细,有点泛泛而谈。
评分还没看,以后仔细拜读!
评分东西不错,价格便宜,服务也好
评分一本实战类书籍,解决学会语言不知道有啥用问题
Python项目开发实战 mobi epub pdf txt 电子书 格式下载 2024