查看文档

可以通过 pydoc <命令> 来查看文档获取帮助。例如,想了解关于文件的相关知识,可以在终端中输入:

1
$ pydoc file

对于同时安装了Python2和Python3的机器,可以通过pydoc2pydoc3命令来获取指定版本的文档。

exec和eval

exec函数用于执行python语句,不过这些语句储存在字符串或文件中而不是程序自身中。

例如,我们可以在运行时产生一个包含python代码的字符串,然后利用exec执行之。

1
2
>>> exec('print("Hello World")')
Hello World

与之类似,eval函数用于执行合法的存储在字符串中的python表达式。下面是一个简单的例子。

1
2
>>> eval('2*3')
6

repr函数

repr函数用于获得对象的正规字符串表示。有趣的是多数时候eval(repr(object))等于object

1
2
3
4
5
6
7
8
>>> i = []
>>> i.append('item')
>>> repr(i)
"['item']"
>>> eval(repr(i))
['item']
>>> eval(repr(i)) == i
True

基本上,repr函数用来获得一个对象的可打印形式。你可以通过在类中定义__repr__方法控制repr的返回值。

在交互模式里执行python脚本

直接用import命令也可以执行一个脚本,但__name__将不是__main__。所以如果该脚本涉及到这类检查的话可能会出问题。下面针对python2和python3有不同的解决方法:

Python2

在python2中,可以使用下面的形式

1
>> execfile("script.py", global_vars, local_vars)

Python3

Python3并没有execfile命令,替代的命令是:

1
>>> exec(open("./filename").read())

另外一个方案是自己定义一个execfile函数:

1
2
3
>> def execfile(afile, globalz=None, localz=None):
with open(afile, "r") as fh:
exec(fh.read(), globalz, localz)

这里有更多的讨论。

IPython

如果使用的是IPython,它提供了很多“魔法”命令,包括

1
run script.py

可以执行一个脚本。

Python相关资源

实例代码

学习程序设计最好的办法就是编写阅读大量代码:

对于某些种类的问题Python Cookbook提供了许多解决问题的珍贵技巧和诀窍。此网是每个python用户都必读的

问题与解答

技巧和诀窍

书籍,文章,教程,视频

逻辑上看完本书应该读读 Mark Pilgrim 那超棒的 Dive Into Python 一书http://www.diveintopython.org/,你可以在线完整阅读。

此书详细的探索了诸如正则表达式,XML处理,web服务,单元测试等内容。

其它有用的资源:

新闻

如果你想了解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

wxGladehttp://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

各种python实现

一个程序设计语言通常包含两部分 —— 语言和软件。语言指出如何编写程序。而软件用来运行我们的程序。

我们一直在用CPython运行我们的程序,之所以称为CPython是因为它是用C语言实现的并且为标准python解释器。

另外还有其它的软件也可以运行python程序:

以上的每个实现都有自己的擅长领域。

Comments