简明Python3教程 18.下一步是什么
如果你有认真通读本书之前的内容并且实践其中包含的大量例程,那么你现在一定可以熟练使用python了。
同时你可能也编写了一些程序用于验证python特性并提高你的python技能。如果还没有这样做的话,你应该去试试。
现在的问题是接下来应该做什么?
我建议你先解决下面的问题:
创建你自己的命令行版本的通讯录程序,利用它你可以浏览修改删除或搜索诸如朋友,家人,同事等联系人和
他们的email地址/或电话号码等信息。这些信息必须存起来以便需要时提取。
思考下我们已经学到的各种知识,这个问题其实相当简单。
如果你感觉还是不好下手的话,这有一些提示。
提示(其实最好不要阅读这个提示)
创建一个表示联系人(persion)信息的类。使用字典存储联系人对象并以人物的名字作为字典键。
然后利用pickle模块把这些对象永久存储到你的硬盘中。
最后通过字典的内建方法add, delete和modify分别增加删除修改联系人。
只要你有能力完成这个程序,你就可以自信的说你是一个python程序员了。
那么现在马上给我发送mail(http://www.swaroopch.com/contact/)好感谢我编写了如此强大的教程吧:-)
当然这步是可选的但我还是希望你发过来。
同时,也请考虑下捐赠,提供改进意见建议或是自愿翻译本书,以支持本书的持续发展。(注:我翻译的我翻译的我翻译的...)
如果你觉得上面的程序太简单,这还有另一个:
实现replace命令(http://unixhelp.ed.ac.uk/CGI/man-cgi?replace)
此命令用于在给定的文件列表中的所有文件中替换指定的字符串。
replace命令可以简单的执行字符串替换也可以复杂的进行模式查找(正则表达式),这取决于你的意愿。
下面是一些继续学习python的方法:
实例代码
学习程序设计最好的办法就是编写阅读大量代码:
• PLEAC项目(http://pleac.sourceforge.net/pleac_python)
• Rosetta代码资料库(Rosetta code repository)(http://rosettacode.org/wiki/Category:Python)
• java2s 网的python范例 (http://www.java2s.com/Code/Python/CatalogPython.htm)
• Python Cookbook (http://code.activestate.com/recipes/langs/python/)
对于某些种类的问题Python Cookbook提供了许多解决问题的珍贵技巧和诀窍。此网是每个python用户都必读的。
问题与解答
• 官方Python Dos and Don'ts (http://docs.python.org/dev/howto/doanddont.html)(注:Dos and Don’ts是 可为与不可为 的意思)
• 官方Python 问与答 (http://docs.python.org/faq/general)
• Norvig的宝贵的已解答问题列表(http://norvig.com/python-iaq.html)
• Python面试问答 (http://dev.fyicenter.com/Interview-Questions/Python/index.html)
• StackOverflow网的python相关问题(http://stackoverflow.com/questions/tagged/python)
技巧和诀窍
• Python技巧和诀窍(http://www.siafoo.net/article/52)
• 使用python的高级软件木工(http://ivory.idyll.org/articles/advanced-swc/)
• 引人入胜的python(Charming Python) (http://gnosis.cx/publish/tech_index_cp.html)是一系列优秀的python相关的文章,作者David Mertz.
书籍,文章,教程,视频
逻辑上看完本书应该读读Mark Pilgrim那超棒的Dive Into Python一书(http://www.diveintopython.org/),你可以在线完整阅读。
此书详细的探索了诸如正则表达式,XML处理,web服务,单元测试等内容。
其它有用的资源:
• ShowMeDo的python视频 (http://showmedo.com/videotutorials/python)
• GoogleTechTalks的python视频 (http://youtube.com/results?searchquery=googletechtalks+python)
• Awaretek的python教程的综合列表(http://www.awaretek.com/tutorials.html)
• Effbot的Python Zone (http://effbot.org/zone/)
• 每个Python-URL!邮件尾的链接(http://groups.google.com/group/comp.lang.python.announce/t/37de95ef0326293d)
• Python Papers (http://pythonpapers.org)
讨论组
如果你被某个问题难住了,也不知道找谁求助,那么comp.lang.python讨论组是个提问的好地方。
(http://groups.google.com/group/comp.lang.python/topics)
记住尽量自己解决问题,不行再去发问。
新闻
如果你想了解python的最新动态,请关注Official Python Planet (http://planet.python.org) 和Unofficial Python Planet (http://www.planetpython.org).
安装库
python包索引(Python Package Index)拥有数量巨大的开源库,你可以在自己的程序中使用它们。(http://pypi.python.org/pypi)
安装和使用这些库,你可以使用Philip J. Eby的优秀的EasyInstall工具。
(http://peak.telecommunity.com/DevCenter/EasyInstall#using-easy-install)。
图形软件
如果你想使用python创建自己的图形程序。那么可以使用已绑定到python上的GUI(图形用户界面)库。
绑定允许你在自己的程序中使用这些库,而库本身是用C/C++或其它语言编写的。
使用python你可以选择很多种GUI库:
PyQt
这是绑定到python的Qt工具包,它是创建KDE的基石。
Qt非常易用,功能又很强大,尤其是仰仗于它的Qt Designer与出色的Qt文档。
如果你在创建开源软件(GPL’ed)则PyQt是免费的, 相反创建私营闭源软件的用户就要掏银子买它了。
从Qt4.5开始你同样可以用它创建非GPL软件。
作为入门可以阅读PyQt教程(http://zetcode.com/tutorials/pyqt4/)或者PyQt book (http://www.qtrac.eu/pyqtbook.html).
PyGTK
GTK+工具包的python绑定。它是GNOME的基础。
GTK+含有很多奇怪的用法,不过一旦熟悉它你就能够快速创建GUI应用了。其中Glade图形界面设计器是必不可少的。
GTK+的文档仍然完善中。GTK+在linux上工作的很好,但其windows实现仍未完成。
另外使用GTK+你既可以创建开源也可以创建私营软件。
入门可以阅读PyGTK教程(http://www.pygtk.org/tutorial.html)
wxPython
这是绑定到python的wxWidgets工具包。
wxPython有一定的学习曲线。但是具有很强的可移植性,可以运行在linux,windows,Mac甚至是嵌入式平台之上。
wxPython拥有很多可用的IDE,其中包括GUI设计器和诸如SPE(Stani的python编辑器)(http://spe.pycs.net)和
wxGlade(http://wxglade.sourceforge.net/)的开发工具。
入门可以阅读wxPython教程(http://zetcode.com/wxpython/)
Tkinter
这是现存最老的GUI工具包之一。如果你用过IDLE,它就是一个使用Tkinter编写的程序。
Tkinter没有什么不错的视觉外观,因为它是个守旧派。
Tkinter是可移植的能够运行在Linux/Unix和Windows上。更重要的Tkinter是标准python发布版的一部分。
入门可以阅读Tkinter教程(http://www.pythonware.com/library/tkinter/troduction/)。
更多的GUI库选择,见python官网的GuiProgramming维基页面(http://wiki.python.org/moin/GuiProgramming)
GUI工具小结
很不幸,python没有一个标准GUI工具。我建议根据你的情况选择上面的工具。
考虑的第一歌因素是你是否愿意付费使用GUI工具。
第二你是否希望程序只运行在windows或mac或linux还是希望都能运行。
第三对于linux平台,你是一个KDE还是一个GNOME用户呢。
更详细广泛的分析,见Python Papers 第26页卷3问题1(http://archive.pythonpapers.org/ThePythonPapersVolume3Issue1.pdf)
各种python实现
一个程序设计语言通常包含两部分 – 语言和软件。语言指出如何编写程序。而软件用来运行我们的程序。
我们一直在用CPython运行我们的程序,之所以称为CPython是因为它是用C语言实现的并且为标准python解释器。
另外还有其它的软件也可以运行python程序:
Jython (http://www.jython.org)
一个运行在java平台的python实现。这意味着你可以在python语言内部使用java库和类,反之亦然。
IronPython (http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython)
一个运行在.NET平台的python实现。即你可以在python语言内部使用java库和类,反之亦然
PyPy (http://codespeak.net/pypy/dist/pypy/doc/home.html)
一个用python写的python实现!
这是一个研究项目,用于使之可以快而容易的改进解释器,因为解释器本身就是用动态语言编写的。(而不是类似上面的C, java或C#等静态语言)
Stackless Python (http://www.tackless.com)
一个专用于基于线程性能的python实现。
除此之外还有CLPython(http://common-lisp.net/project/clpython/)一个Common Lisp编写的python实现。
IronMonkey(https://wiki.mozilla.org/Tamarin:IronMonkey)是一个运行在JavaScript解释器之上的IronPython的接口,
这可能意味着你可以使用python(替代JavaScript)编写web浏览器程序(“Ajax”)。
以上的每个实现都有自己的擅长领域。
小结
现在我们已经来到本书的结尾了。不过据说,结束意味着另一个开始!
你现在是一个满腔热切的python用户,很可能摩拳擦掌准备利用python解决大量问题。
现在你可以让计算机自动完成许多以前无法想象的事情或是编写游戏或是更多更多。
既然如此!那就行动起来大干一场吧!
简明Python3教程 18.下一步是什么的更多相关文章
- 简明Python3教程(A Byte of Python 3)
关键字:[A Byte of Python v1.92(for Python 3.0)] [A Byte of Python3] 简明Python教程 Python教程 简明Python3教程 简明 ...
- 简明Python3教程 16.标准库
简介 python标准库作为python标准安装的一部分,其自身包含数量庞大的实用模块, 因此熟悉python标准库非常重要,因为很多问题都能利用python标准库快速解决. 下面我们将研究标准库中的 ...
- 简明Python3教程 5.第一步
介绍 我们现在来看看如何在Python中运行传统的”Hello world”程序.这会教你如何写.保存以及运行Python程序. 有两种办法来运行您的Python程序——使用交互式的解释器提示符或者源 ...
- 简明Python3教程 4.安装
如果你已经安装了Python 2.x,你不需要在安装Python 3.0前卸载Python 2.x.这两者可以共存. GNU/Linux用户和BSD用户 如果你使用类似于Ubuntu.Fedora.O ...
- 简明Python3教程 12.问题解决
我们已经探究了python语言的方方面面,现在我们将通过设计编写一个有用的程序将这些内容有机的结合起来. 主要目标是让大家有能力独自编写程序. 问题 我们要解决的问题是”希望编写一个程序,用于创建所有 ...
- 简明Python3教程 11.数据结构
简介 数据结构基本上就是 – 可以将一些数据结合到一起的结构,换言之用于存储一组相关的数据. python拥有4种内建数据结构 – 列表,元组(tuple),字典和集合. 我们将看到如何它们,它们又是 ...
- 简明Python3教程 9.函数
简介 函数是程序的可复用片段,允许你为语句块赋予名字之后在程序的任何地方运行它们任意次,这称做函数调用. 我们已经使用过一些内建函数,例如len和range等. 函数也许是任何有意义的软件中最重要的构 ...
- 简明Python3教程 8.控制流
简介 迄今为止我们见到的所有程序总是含有一连串语句并且python忠实的顺序执行它们. 那么如何改变它们的执行顺序呢?例如你希望程序根据不同情况作出不同反应,按照当前时间分别 打印出’Good Mor ...
- 简明Python3教程 7.运算符和表达式
简介 你写的大多数逻辑行都包含表达式.表达式的一个简单例子是2 + 3.一个表达式可分为操作符和操作数两部分. 操作符的功能是执行一项任务:操作符可由一个符号或关键字代表,如+ .操作符需要数据以供执 ...
随机推荐
- storm集群操作指南
目录 storm集群操作指南 一.storm伪分布式安装 (一)环境准备 (二)安装zookeeper (三)安装storm (四)运行程序 二.storm集群安装 (一)下载storm并解压 (二) ...
- HDU 1408 盐水的故事 数学水题
http://acm.hdu.edu.cn/showproblem.php?pid=1408 题目: 挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下:然后滴二滴,停一下:再滴三滴,停一下...,现 ...
- 14、USB摄像头(V4L2接口)的图片采集
参考网站http://www.cnblogs.com/surpassal/archive/2012/12/19/zed_webcam_lab1.html 一.一些知识 1.V4L和V4L2. V4L是 ...
- 【t069】奇怪的迷宫
Time Limit: 1 second Memory Limit: 128 MB [问题描述] Mini现在站在迷宫的原点处,公主在[N,N],为了能最快地到达公主处救出公主,Mini希望能走一条最 ...
- jboss-as-7.1.1.Final与jdk1.8不兼容解决方案
今天在安装1.8电脑上装了jboss7.1.1,配置好了运行的时候就是无法启动,最后得出答案是:jboss-as-7.1.1.Final与jdk1.8不兼容 1.如果你的电脑安装了jdk1.8,那么在 ...
- ios开发多线程四:NSOperation多图下载综合案例
#import "ViewController.h" #import "XMGAPP.h" @interface ViewController () /** t ...
- [内核编程] visual studio 2010配置驱动开发环境
visual studio 2010 配置驱动开发环境 ** 工具/材料 VS2010.WDK开发包 ** 配置过程 以下将讲述VS2010驱动开发环境的配置过程,至于必要软件的安装过程这里不再赘述 ...
- dmalloc用法快速入门
原文链接 常用内存泄露检测手段有 1 mtrace 2 memwatch 3 mpatrol 4 dmalloc 5 dbgmem 6 valgrind 7 Electric Fence dmallo ...
- QQ互联API接口失效,第三方网站的死穴
最近2个月,用开源程序WeCenter搭建了一个社交问答网站. 为了方便用户注册,开通了QQ登录功能. 今天,突然发现QQ互联返回一直出现错误. 度娘了很久,发现大家都遇到这个问题了.Disc ...
- jquery中ajax中post方法(多学习:洞悉原理,触类旁通)(函数封装思想)
jquery中ajax中post方法(多学习:洞悉原理,触类旁通)(函数封装思想) 一.总结 1.多看学习视频:洞悉原理,触类旁通, 2.函数封装:$.post(URL,data,callback); ...