forked from swaroopch/byte-of-python
-
Notifications
You must be signed in to change notification settings - Fork 2
/
18-what-next.pd
129 lines (68 loc) · 8.47 KB
/
18-what-next.pd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# 下一步做什么
到现在为止,如果你彻底读过这本书和练习写作过大量的程序,那么你一定变得舒服而且熟悉Python。你可能已经创建了一些Python程序去尝试这些东西,去锻炼你的Python技能。如果你还没有这样做了,你应该去做。现在的问题是“下一步做什么呢?”。
我建议你处理这个问题:
> 创建你自己的命令行*地址簿*程序,使用它可以浏览、添加、修改、删除和搜索你的联系人如朋友、家人和同事及他们的信息,如电子邮件地址和/或电话号码。细节必须存储供以后检索。
如果你想依据直到现在我们遇到的各种各样的材料中考虑它,这是相当容易的。如果你仍然想知道如何处理的方向,那么这是一个提示。
提示(不先试不要看)
: 创建一个代表人们信息的类。使用字典存储成员对象,用他们的名字做键。使用pickle模块将对象存储在你的硬盘中,使用字典的内建方法添加、删除和修改成员信息。
一旦你能做这个,你可以声明是一名Python程序员了。现在,立即[发电子邮件给我](http://www.swaroopch.com/contact/)感谢我的这本伟大的书;-). 这个步骤是可选 的但是推荐的。同样,请考虑[购买一个印刷版](http://www.swaroopch.com/buybook/)来支持这本书的可持续发展。
如果你发现这个程序简单,这有另外一个:
> 编写[替换命令](http://unixhelp.ed.ac.uk/CGI/man-cgi?replace). 这个命令将使用指定文件列表中的字符串替换一个字符串。
replace命令可以是简单或复杂的,这随你所愿,从简单的字符串替换到寻找模式(正则表达式)。
在那之后,下面是一些继续使用Python旅程的一些方法:
## 示例代码
学习一门程序语言的最好方式是写许多代码和读许多代码:
- [Python Cookbook](http://code.activestate.com/recipes/langs/python/) 是使用Python解决某些问题的技巧和秘诀的非常有用的集合,这是每个Python使用者必读的。
- [Python Module of the Week](http://www.doughellmann.com/PyMOTW/contents.html)是另一本杰出的[Python标准库](#标准库)必读指南。
## 问题及解答
- [Official Python Dos and Don'ts(Python官方的注意事项)](http://docs.python.org/py3k/howto/doanddont.html)
- [Official Python FAQ(Python官方的问题解答)](http://www.python.org/doc/faq/general/)
- [Norvig's list of Infrequently Asked Questions(很少发生的提问列表)](http://norvig.com/python-iaq.html)
- [Python Interview Q & A(Python问题解答访谈)](http://dev.fyicenter.com/Interview-Questions/Python/index.html)
- [StackOverflow questions tagged with python(使用Python标记的堆栈溢出问题)](http://beta.stackoverflow.com/questions/tagged/python)
## 学习指南
- [Awaretek's comprehensive list of Python tutorials(Awaretek的Python学习指南的综合列表)](http://www.awaretek.com/tutorials.html)
## 视频
- [PyVideo](http://www.pyvideo.org/category)
## 讨论
当你遇到一个Python问题而无法进行下去时,不知道去问谁,那么 [python-tutor list(Python辅导列表)](http://mail.python.org/mailman/listinfo/tutor) 是你提问的最好的地方。
前提是确保你做你的家庭作业和你自己试图解决问题。
## 新闻
如果你想了解世界是最新的Python,那么请跟随[Python的官方行星](http://planet.python.org。
## 安装库
在[Python包索引)(http://pypi.python.org/pypi)中有一个巨大的数量的,你可以在你自己的程序中使用的开源库。安装和使用这些库,你可以使用[pip](http://www.pip-installer.org/en/latest/)。
## 图形软件
假设您想要使用Python创建自己的图形程序,这可以通过使用一个GUI(图形用户接口)库与Python绑定来实现。绑定是允许你用Python编写程序和使用用C或C++语言编写的库。
使用Python有很多GUI可供选择:
Kivy
: <http://kivy.org>
PyGTK
: 这是Python为GTK+工具包的绑定,GTK+工具包是GNOME建立的基础。GTK+在使用上有许多怪癖,但一旦你适应,您可以快速创建GUI应用程序。这是图形界面设计者必不可少的。文档是没有改善。GTK+在Linux上工作良好,但它转到Windows是不完整的。您可以使用GTK+创建自由以及专有软件。 要开始使用,阅读[PyGTK教程)(http://www.pygtk.org/tutorial.html)。
PyQt
: 这是Python为Qt工具包绑定的,Qt工具包是KDE建立的基础。由于Qt设计器和惊人的Qt文档,Qt非常易用、非常强大。如果你想创建开源(GPL'ed)软件,PyQt是免费的。如果你想创建专有的闭源软件,你需要购买它。从Qt4.5开始你同样可以使用它创建非gpl软件。要开始使用,首先阅读[PyQt教程](http://zetcode.com/tutorials/pyqt4/)或(PyQt书)(http://www.qtrac.eu/pyqtbook.html)。
wxPython
: 这是Python为wxWidgets工具包绑定的。wxPython有一个与之关联的学习曲线。然而,它是非常轻便,运行在Linux、Windows、Mac和甚至嵌入式平台。有许多可供wxPython使用的ide,包括GUI设计师,例如[SPE(Stani的Python编辑器)](http://spe.pycs.net/)和[wxGlade](http://wxglade.sourceforge.net/)GUI构建器。使用wxPython您可以创建自由以及专有软件。首先,阅读[wxPython教程)(http://zetcode.com/wxpython/)。
### GUI工具小结
更多选择,请参见[Python官方网站的GuiProgramming wiki页面)(http://www.python.org/cgi-bin/moinmoin/GuiProgramming)。
不幸的是,对于Python没有一个标准的GUI工具。我建议你根据你的情况,从以上工具中选择一个。第一个因素是,你是否愿意为使用GUI工具支付费用。第二个因素是,你是否想让程序只在Windows、或Mac或Linux上运行,还是所有这些都可以。第三个因素,如果Linux是选择的平台,你是Linux上的KDE用户,还是GNOME用户。
对于更详细和全面的分析,请看[The Python Paper,Volume 3, Issue 1](http://archive.pythonpapers.org/ThePythonPapersVolume3Issue1.pdf)的第26页。
## 各种实现
一个编程语言通常有两部分,语言和软件。语言是你*怎样*写点东西。软件是程序实际运行*什么*。
我们一直使用*CPython*软件来运行我们程序。因为它写是用C语言编写的,*Classical(经典)的Python解释器*,因此被称为CPython。还有其它的软件可以运行你的程序:
[Jython](http://www.jython.org)
: 运行在Java平台上的一个Python实现。这意味着您可以在Python语言中使用Java库和类,反之亦然。
[IronPython](http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython)
: 运行在.NET平台的一个Python实现,这意味着您可以在Python中使用.NET库和类,反之亦然。
[PyPy](http://codespeak.net/pypy/dist/pypy/doc/home.html)
: 用Python写的一个Python实现!这是一个研究项目,使改进解释器又快又好,因为解释器本身是用一种动态语言编写的(与静态语言相反(如C、Java或c#)在上面的三个实现)
[Stackless Python](http://www.stackless.com)
: 一个Python实现,是专门基于线程性能的。
还有其它的,例如,[CLPython](http://common-lisp.net/project/clpython/) - 用 Common Lisp语言编写的一个Python实现、[IronMonkey],这是一个工作在JavaScript解释器上的IronPython端口,这可能意味着您可以使用Python(而不是JavaScript)来写你的网络浏览器("Ajax")程序。
每一种实现都有自己的有用的专业领域。
## 函数程序设计(为高级读者)
当你开始编写大型程序,你应该明确地了解更多我们在(面向对象编程一章)(#面向对象编程)学会的,关于函数编程方法与基于类的编程方法。
- [Functional Programming Howto by A.M. Kuchling(A.M. Kuchling编写的如何进行函数编程)](http://docs.python.org/dev/howto/functional.html)
- [Functional programming chapter in 'Dive Into Python' book('Dive Into Python' 书中函数编程一章)](http://www.diveintopython.net/functional_programming/index.html)
- [Functional Programming with Python presentation(使用Python描述的函数编程)](http://ua.pycon.org/static/talks/kachayev/index.html)
## 小结
现在,我们到了本书尽头,但是,正如他们所说,这是*结束的开始*!。你现在是一个狂热的Python用户,毫无疑问,你准备使用Python解决许多问题。你可以让你的计算机自动开始做各种各样的,从前不可想象的事情或编写自己的游戏和许许多多。所以,开始吧!