接下来学什么
如果你已经彻底阅读了本书并练习编写了大量程序,那么你一定已经对 Python 感到自如和熟悉了。你可能已经创建了一些 Python 程序来尝试各种东西并锻炼你的 Python 技能。如果你还没有这样做,你应该去试试。现在的问题是"接下来学什么?"。
我建议你尝试解决这个问题:
创建你自己的命令行通讯录程序,通过它你可以浏览、添加、修改、删除或搜索你的联系人,如朋友、家人和同事,以及他们的信息,如电子邮件地址和/或电话号码。详细信息必须存储以备日后检索。
如果你想想我们到目前为止遇到的各种内容,这其实相当简单。如果你仍然需要关于如何进行的指导,这里有一个提示1。
一旦你能做到这一点,你就可以自称是一名 Python 程序员了。现在,立即给我发一封电子邮件 感谢我写了这本好书 ;-)。这一步是可选的但推荐这样做。另外,请考虑购买一本印刷版 以支持本书的持续开发。
如果你觉得那个程序很简单,这里还有一个:
实现 replace 命令。这个命令将在提供的文件列表中将一个字符串替换为另一个字符串。
replace 命令可以简单也可以复杂,从简单的字符串替换到查找模式(正则表达式)。
下一个项目
如果你觉得上面的程序很容易创建,那么看看这个全面的项目列表,尝试编写你自己的程序:https://github.com/thekarangoel/Projects#numbers(同样的列表也在 Martyr2 的超级项目列表中)。
另请参阅:
示例代码
学习编程语言的最好方法是编写大量代码和阅读大量代码:
- Python Cookbook 是一个极其宝贵的技巧集或关于如何使用 Python 解决某些类型问题的指南。这是每个 Python 用户的必读之作。
- Python Module of the Week 是另一个优秀的必读指南,介绍标准库。
建议
视频
问答
教程
讨论
如果你遇到了 Python 问题,不知道该问谁,那么 python-tutor 邮件列表 是提问的最佳场所。
确保你先自己尝试解决问题,然后提出聪明的问题。
新闻
如果你想了解 Python 世界的最新动态,请关注 Python 官方 Planet。
安装库
Python 包索引上有大量开源库,你可以在自己的程序中使用它们。
要安装和使用这些库,你可以使用 pip。
创建网站
学习 Flask 来创建你自己的网站。一些入门资源:
图形界面软件
假设你想使用 Python 创建自己的图形界面程序。这可以通过使用带有 Python 绑定的 GUI(图形用户界面)库来实现。绑定(binding)允许你用 Python 编写程序并使用本身用 C 或 C++ 或其他语言编写的库。
使用 Python 的 GUI 有很多选择:
Kivy
PyGTK
- 这是 GTK+ 工具包的 Python 绑定,GTK+ 是构建 GNOME 的基础。GTK+ 在使用上有很多怪癖,但一旦你熟悉了,就可以快速创建 GUI 应用程序。Glade 图形界面设计器是不可或缺的。文档还有待改进。GTK+ 在 GNU/Linux 上运行良好,但其在 Windows 上的移植还不完整。你可以使用 GTK+ 创建自由软件和专有软件。入门请阅读 PyGTK 教程。
PyQt
- 这是 Qt 工具包的 Python 绑定,Qt 是构建 KDE 的基础。Qt 非常易于使用且功能强大,特别是由于 Qt Designer 和出色的 Qt 文档。如果你想创建开源(GPL 许可的)软件,PyQt 是免费的;如果你想创建专有的闭源软件,则需要购买。从 Qt 4.5 开始,你也可以使用它来创建非 GPL 软件。入门请阅读关于 PySide 的内容。
wxPython
- 这是 wxWidgets 工具包的 Python 绑定。wxPython 有一定的学习曲线。但是,它的可移植性非常好,可以在 GNU/Linux、Windows、Mac 甚至嵌入式平台上运行。有许多可用的 IDE,包括 GUI 设计器,如 SPE (Stani's Python Editor) 和 wxGlade GUI 构建器。你可以使用 wxPython 创建自由软件和专有软件。入门请阅读 wxPython 教程。
GUI 工具总结
更多选择请参见 Python 官方网站的 GuiProgramming wiki 页面。
遗憾的是,Python 没有一个标准的 GUI 工具。我建议你根据自己的情况选择上述工具之一。第一个因素是你是否愿意付费使用任何 GUI 工具。第二个因素是你希望程序只在 Windows 上运行,还是在 Mac 和 GNU/Linux 上运行,或者在所有平台上运行。第三个因素,如果 GNU/Linux 是你选择的平台,那么你在 GNU/Linux 上是 KDE 还是 GNOME 用户。
更详细和全面的分析,请参见 'The Python Papers, Volume 3, Issue 1' (PDF) 的第 26 页。
各种实现
编程语言通常有两个部分——语言和软件。语言是你如何编写东西的方式。软件是实际运行我们程序的东西。
我们一直在使用 CPython 软件来运行我们的程序。它被称为 CPython,因为它是用 C 语言编写的,是经典的 Python 解释器。
还有其他可以运行你的 Python 程序的软件:
-
- 运行在 Java 平台上的 Python 实现。这意味着你可以在 Python 语言中使用 Java 库和类,反之亦然。
-
- 运行在 .NET 平台上的 Python 实现。这意味着你可以在 Python 语言中使用 .NET 库和类,反之亦然。
-
- 用 Python 编写的 Python 实现!这是一个研究项目,旨在使解释器变得快速且易于改进,因为解释器本身是用动态语言编写的(与上述三种实现中使用的 C、Java 或 C# 等静态语言不同)。
还有其他的实现,如 CLPython——用 Common Lisp 编写的 Python 实现,以及 Brython——在 JavaScript 解释器之上的实现,这意味着你可以使用 Python(而不是 JavaScript)来编写你的网页浏览器("Ajax")程序。
每种实现都有其适用的专门领域。
函数式编程(面向高级读者)
当你开始编写更大的程序时,你一定要学习更多关于函数式编程方法的知识,这与我们在面向对象编程章节中学到的基于类的方法不同:
小结
我们现在已经到了本书的结尾,但正如他们所说,这是结束的开始!你现在是一个热爱 Python 的用户,毫无疑问已经准备好用 Python 解决许多问题了。你可以开始自动化你的计算机来做各种以前不可想象的事情,或者编写你自己的游戏等等。所以,开始行动吧!
1. 创建一个类来表示人的信息。使用一个 dict(字典)以姓名为键来存储人对象。使用 pickle 模块将对象持久化存储在硬盘上。使用 dict 的内置方法来添加、删除和修改人员。 ↩