Python是 一种用途广泛的编程语言:面向对象,动态,只要很少的代码就能完成复杂的功能,语法干净而优雅,“符合人们的思考习惯”,对不同年龄和编程水平的人 来说都是一个完美的选择。所有这些特性哺育着一个忠诚,博学,充满活力的社区。除此之外,使用Python的另一个好处是它的交互式解释器。 Python发行包中自带的标准交互式解释器允许用户在一个命令行提示符下输入python代码,然后执行它,你可以马上看到结果,它还可以深入源代码以 提供各种级别的自省。(Python的自省是指这样一种能力:允许用户在运行时检测对象的相关信息,诸如类型,属性,方法等等)Python交互式解释器 经常用于测试一小段代码,比如验证某个算法或熟悉某个库,也可用来完成某些特定任务,比如创建500个名字为dir_000-dir_499的目录。

    标准Python解释器毫无疑问是许多Python程序员工具箱中极其重要的宝贝。然而IPython的 开发者吸收了标准解释器的基本概念,在此基础上进行 了大量的改进,创造出一个令人惊奇的工具。在它的主页上是这么说的:“这是一个增强的交互式Python shell。” 这个说法太谦虚了。IPython优雅,设计精巧同时兼具极强的扩展能力。那些精心设计使得IPython如此有用:tab补全,对象自省,强大的历史机 制,内嵌的源代码编辑,集成Python调试器,%run机制,宏,创建多个环境以及调用系统shell的能力。

    IPython 的产生源于Fernando Pérez试图将他自己的工作和Janko Hauser开发的IPP以及由Nathan Gray开发的LazyPython整合起来的努力。Pérez声称他的灵感还来自Stephen Figgin的文章《IPP和LazyPython》。Fernando现在是IPython项目唯一的开发人员。

    下面是我在自己虚拟机上测试的命令:

     

    [email protected]:~$ ipython
    Python 2.7.2+ (default, Oct  4 2011, 20:03:08)
    Type "copyright", "credits" or "license" for more information.

    IPython 0.10.2 -- An enhanced Interactive Python.
    ?         -> Introduction and overview of IPython's features.
    %quickref -> Quick reference.
    help      -> Python's own help system.
    object?   -> Details about 'object'. ?object also works, ?? prints more.

     

    In [1]: ls
    Desktop/  Documents/  Downloads/  examples.desktop  Music/  Pictures/  Public/    Templates/  Videos/  vmware-tools-distrib/

    In [2]: ps
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)

    /home/zhuangyan/<ipython console> in <module>()

    NameError: name 'ps' is not defined

    In [3]: !ps
      PID TTY          TIME CMD
     4794 pts/0    00:00:01 bash
     4936 pts/0    00:00:00 python
     4940 pts/0    00:00:00 sh
     4941 pts/0    00:00:00 ps

    In [4]: rehashx

    In [5]: ps
      PID TTY          TIME CMD
     4794 pts/0    00:00:01 bash
     4936 pts/0    00:00:00 python
     4942 pts/0    00:00:00 sh
     4943 pts/0    00:00:00 ps

    In [6]: ps.grep('python')
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)

    /home/zhuangyan/<ipython console> in <module>()

    NameError: name 'ps' is not defined

    In [7]: ps=!ps

    In [8]: ps.grep('python')
    Out[8]: SList (.p, .n, .l, .s, .grep(), .fields(), sort() available):
    0:  4936 pts/0    00:00:00 python

    In [9]: ps.grep('python').fields(0)
    Out[9]: SList (.p, .n, .l, .s, .grep(), .fields(), sort() available):
    0: 4936
    ----------------------------------------------------------

    注释

    1,ls可直接使用

    2,ps命令找不到

    3,加!可执行shell命令

    4,运行rehashx命令

    5,可以使用ps了

    6,ps.grep为什么不能用

    7,!ps赋值给ps

    8,可以用grep了

    9,也可以用fields表出想看的字段了