Ipython 解释器

发布时间:2019-09-28 08:38:10编辑:auto阅读(1810)

    进入ipython

    通常我们并不使用Python自带的解释器,而是使用另一个比较方便的解释器——ipython解释器,命令行下输入:

    ipython
    

    即可进入ipython解释器。

    所有在python解释器下可以运行的代码都可以在ipython解释器下运行:

    print "hello, world"
    hello, world
    
    

    可以进行简单赋值操作:

    a = 1

    直接在解释器中输入变量名,会显示变量的值(不需要加print):

    a
    1
    
    
    
    
    b = [1, 2, 3]

    ipython magic命令

    ipython解释器提供了很多以百分号%开头的magic命令,这些命令很像linux系统下的命令行命令(事实上有些是一样的)。

    查看所有的magic命令:

    %lsmagic
    Available line magics:
    %alias  %alias_magic  %autocall  %automagic  %autosave  %bookmark  %cd  %clear  %cls  %colors  %config  %connect_info  %copy  %ddir  %debug  %dhist  %dirs  %doctest_mode  %echo  %ed  %edit  %env  %gui  %hist  %history  %install_default_config  %install_ext  %install_profiles  %killbgscripts  %ldir  %less  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %macro  %magic  %matplotlib  %mkdir  %more  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %popd  %pprint  %precision  %profile  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %ren  %rep  %rerun  %reset  %reset_selective  %rmdir  %run  %save  %sc  %set_env  %store  %sx  %system  %tb  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode
    
    Available cell magics:
    %%!  %%HTML  %%SVG  %%bash  %%capture  %%cmd  %%debug  %%file  %%html  %%javascript  %%latex  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile
    
    Automagic is ON, % prefix IS NOT needed for line magics.
    
    
    

    line magic 以一个百分号开头,作用与一行;

    cell magic 以两个百分号开头,作用于整个cell。

    最后一行Automagic is ON, % prefix IS NOT needed for line magics.说明在此时即使不加上%也可以使用这些命令。

    使用 whos 查看当前的变量空间:

    %whos
    Variable   Type    Data/Info
    ----------------------------
    a          int     1
    b          list    n=3
    
    

    使用 reset 重置当前变量空间:

    %reset -f

    再查看当前变量空间:

    %whos
    Interactive namespace is empty.
    
    

    使用 pwd 查看当前工作文件夹:

    %pwd
    u'C:\\Users\\lijin\\Documents\\Git\\python-tutorial\\01. python tools'
    
    
    

    使用 mkdir 产生新文件夹:

    %mkdir demo_test

    使用 cd 改变工作文件夹:

    %cd demo_test/
    C:\Users\lijin\Documents\Git\python-tutorial\01. python tools\demo_test
    
    

    使用 writefile 将cell中的内容写入文件:

    %%writefile hello_world.py
    print "hello world"
    Writing hello_world.py
    
    

    使用 ls 查看当前工作文件夹的文件:

    %ls
     驱动器 C 中的卷是 System
     卷的序列号是 DC4B-D785
    
     C:\Users\lijin\Documents\Git\python-tutorial\01. python tools\demo_test 的目录
    
    2015/09/18  11:32    <DIR>          .
    2015/09/18  11:32    <DIR>          ..
    2015/09/18  11:32                19 hello_world.py
                   1 个文件             19 字节
                   2 个目录 121,763,831,808 可用字节
    
    

    使用 run 命令来运行这个代码:

    %run hello_world.py
    hello world
    
    

    删除这个文件:

    import os
    os.remove('hello_world.py')

    查看当前文件夹,hello_world.py 已被删除:

    %ls
     驱动器 C 中的卷是 System
     卷的序列号是 DC4B-D785
    
     C:\Users\lijin\Documents\Git\python-tutorial\01. python tools\demo_test 的目录
    
    2015/09/18  11:32    <DIR>          .
    2015/09/18  11:32    <DIR>          ..
                   0 个文件              0 字节
                   2 个目录 121,763,831,808 可用字节
    
    

    返回上一层文件夹:

    %cd ..
    C:\Users\lijin\Documents\Git\python-tutorial\01. python tools
    
    

    使用 rmdir 删除文件夹:

    %rmdir demo_test

    使用 hist 查看历史命令:

    %hist
    print "hello, world"
    a = 1
    a
    b = [1, 2, 3]
    %lsmagic
    %whos
    %reset -f
    %whos
    %pwd
    %mkdir demo_test
    %cd demo_test/
    %%writefile hello_world.py
    print "hello world"
    %ls
    %run hello_world.py
    import os
    os.remove('hello_world.py')
    %ls
    %cd ..
    %rmdir demo_test
    %hist
    
    

    ipython 使用

    使用 ? 查看函数的帮助:

    sum?

    使用 ?? 查看函数帮助和函数源代码(如果是用python实现的):

    # 导入numpy和matplotlib两个包
    %pylab
    # 查看其中sort函数的帮助
    sort??
    Using matplotlib backend: Qt4Agg
    Populating the interactive namespace from numpy and matplotlib
    
    

    ipython 支持使用 <tab> 键自动补全命令。

    使用 _ 使用上个cell的输出结果:

    a = 12
    a
    12
    
    
    
    
    _ + 13
    25
    
    
    

    可以使用 ! 来执行一些系统命令。

    !ping baidu.com
    
    正在 Ping baidu.com [180.149.132.47] 具有 32 字节的数据:
    来自 180.149.132.47 的回复: 字节=32 时间=69ms TTL=49
    来自 180.149.132.47 的回复: 字节=32 时间=64ms TTL=49
    来自 180.149.132.47 的回复: 字节=32 时间=61ms TTL=49
    来自 180.149.132.47 的回复: 字节=32 时间=63ms TTL=49
    
    180.149.132.47 的 Ping 统计信息:
        数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
    往返行程的估计时间(以毫秒为单位):
        最短 = 61ms,最长 = 69ms,平均 = 64ms
    
    

    当输入出现错误时,ipython会指出出错的位置和原因:

    1 + "hello"
    ---------------------------------------------------------------------------
    
    TypeError                                 Traceback (most recent call last)
    
    <ipython-input-25-d37bedb9732a> in <module>()
    ----> 1 1 + "hello"
    
    
    TypeError: unsupported operand type(s) for +: 'int' and 'str'
    
    

关键字