现在你已经阅读过本书并且编写了一些程序,那么你已经开始熟悉并且习惯 Python 了。现在我们面临的问题是“下一步该做什么?”。
我建议你试图解决这个问题:
编写一款你自己的命令行_地址簿_程序,你可以用它浏览、添加、编辑、删除或搜索你的联系人,例如你的朋友、家人、同事,还有他们诸如邮件地址、电话号码等多种信息。这些详细信息必须被妥善储存以备稍后的检索。
如果你回想至今我们学过、讨论过、遇见过的所有东西,你会发现这其实非常简单。 我们可以创建一个类用来表示人的信息。使用一份字典来存储人物对象,将它们的名字当作键值。使用 pickle 模块来将对象长久地存储在硬盘上。使用字典的内置方法来添加、删除或编辑地址簿中的人物。
一旦你能够做到这件事,你便可以说自己是一名 Python 程序员了。
如果你觉得上面的程序太容易了,这还有另一个:
实现替换命令。这个命令能将一串字符串替换为另外提供的文件或列表中的另一串。
只要你愿意,替换命令可以或简单或复杂地实现,从简单的字符串替换到搜寻搭配的样式(正则表达式)。
如果你发现上面的程序都能很容易地编写出来,那么看看下面这个完整的项目列表,并尝试编写你自己的程序:https://github.com/thekarangoel/Projects#numbers (这一列表与 Martyr2 的超级项目列表相同)。
你还可以看看:
学习一门编程语言的最好方式就是编写大量代码,并阅读大量代码:
- Python Cookbook 是一本极具价值的“烹饪法”与提示的集合,它介绍了如何通过 Python 解决某些特定类型的问题。
- Python Module of the Week 是另一本优秀的标准库必读指南。
- The Hitchhiker's Guide to Python!
- The Elements of Python Style
- Python Big Picture
- "Writing Idiomatic Python" ebook (付费)
- Official Python Dos and Don'ts
- Official Python FAQ
- Norvig's list of Infrequently Asked Questions
- Python Interview Q & A
- StackOverflow questions tagged with python
- Hidden features of Python
- What's the one code snippet/python trick/etc did you wish you knew when you learned python?
- Awaretek's comprehensive list of Python tutorials
如果你遇到了一个 Python 问题,但不知道该问谁,那么 python-tutor list 是你提问的最佳场所。
请确保你会自己做你的家庭作业,你要首先尝试自己解决问题,同时,还要会问聪明的问题。
如果你希望了解 Python 世界的最新动态,那就跟随 Official Python Planet 的脚步吧。
Python 库索引中包含了大量开源的库,你可以在你自己的程序中使用它们。
要想了解如何安装并使用这些库,你可以使用 pip。
学习使用 Flask 来创建你自己的网站。下面这些资源有助于你开始学习:
假设你希望使用 Python 来创建你自己的图形程序。这可以通过采用一个 GUI(Graphical User Interface,图形用户界面)库和它们的 Python 绑定来实现。绑定是允许你用 Python 编写你自己的程序,然后使用它们在 C 或 C++ 或其它语言写编写的库。
使用 Python 的 GUI 有许多选择:
- Kivy
- PyGTK
- 这是 GTK+ 工具包的 Python 绑定,它是构建 GNOME 的基础。GTK+ 有许多奇怪的用法,但是你一旦习惯了使用它,就能很快的创建出你的 GUI 应用。Glade 图形界面设计工具是不可或缺的。它的文档至今仍在不断改进。GTK+ 在 GNU/Linux 下能够良好工作,但是它针对 Windows 平台的移植工作尚未完成。你可以使用 GTK+ 创建免费或专有的软件。要想开始使用,请阅读 PyGTK 教程。
- PyQt
- 这是 Qt 工具包的 Python 绑定,它是构建 KDE 的基础。 受益于 Qt Designer 与令人惊讶的 Qt 文档,Qt 十分容易使用也十分强大。如果你希望创建一款开源(GPL)软件,你可以免费使用 PyQt,不过如果你想创建专有的闭源软件,你需要购买它。从 Qt 4.5 开始你可以使用它来创建不采用 GPL 授权的软件。要想开始使用,请阅读 PySide。
- wxPython
- 这是 wxWidgets 工具包的 Python 绑定。wxPython 有一个与之相关的学习曲线。不过,它非常便携,并且可以运行在 GNU/Linux、Windwos、Mac、甚至是嵌入式平台中。有许多 IDE 可以采用 wxPython,并且包含了 GUI 设计工具,例如 SPE (Stani's Python Editor) 还有 wxGlade GUI 构建工具。你可以使用 wxPython 来创建免费或专有的软件。要想开始使用,请阅读wxPython 教程。
想要了解更多的选择,可以参阅 GuiProgramming wiki page at the official python website。
不幸的是,Python 没有一款标准 GUI 工具。我建议你根据你的实际情况从上面列出的工具中进行挑选。第一个因素是你是否愿意为使用任何 GUI 工具付费。第二个因素是你希望你的程序只在 Windwos 上运行,还是在 Mac 和 GNU/Linux 上运行,还是在它们三者之上都能运行。第三个因素,如果 GNU/Linux 是目标平台,那你是要做 KDE 用户还是 GNOME 用户。
有关更详尽且更全面的分析,请参阅 'The Python Papers, Volume 3, Issue 1' (PDF) 的第 26 页。
编程语言主要有两部分——语言与软件。语言是你_如何_编写,软件是你_怎样_实际运行我们的程序。
我们一直在使用 CPython 软件来运行我们的程序。它被成为 CPython 是因为它是使用 C 语言编写的,同时它也是_经典的(Classical) Python 解释器_。
还有其他软件可以运行你的 Python 程序:
- Jython
- 在 Java 平台上运行的 Python 实现。这意味着你可以在 Python 语言中使用 Java 的库与类,反之亦然。
- IronPython
- 在 .NET 平台上运行的 Python 实现。这意味着你可以在 Python 语言中使用 .NET 的库与类,反之亦然
- PyPy
- 用 Python 编写的 Python 实现!这是一项研究项目,旨在于使其能快速且方便的改进解释器,因为解释器本身就是用动态语言编写的了(而不是采用上述三种 C、Java、C# 等动态语言来编写)。
还有其它诸如 CLPython——采用 Common Lisp 编写的 Python 实现,和Brython ,它在 JavaScript 解释器之上实现,意味着你可以使用 Python(而非 JavaScript)编写你的 Web 浏览器(“Ajax”)程序。
上述这些实现每一种都有其大有作为的专门领域。
当你开始编写更加庞大的程序时,你应该清楚了解更多关于使用函数的方式来进行编程,而不是我们在《面向对象编程》章节中所学习的基于类的方式进行编程:
- Functional Programming Howto by A.M. Kuchling
- Functional programming chapter in 'Dive Into Python' book
- Functional Programming with Python presentation
- Funcy library
- PyToolz library
现在我们已经行至本书末尾,不过,正如人们所说,这是_昭示着开始的终结_!你现在已经是一名 Python 用户,毫无疑问,你已准备好通过 Python 来解决诸多问题了。你可以开始自动化你的电脑,去做任何你以前难以想象的事情,你可以开始编写你自己的游戏,开始做更多更多的事,而且不止于此。来,让我们出发吧!