IPython介绍

作者: 奉先 | 来源:发表于2019-09-28 12:08 被阅读0次

    0. 前言

    本篇文章主要介绍IPython工具。
    首先,需要介绍下Python和IPython的关系。如果将 Python 看作数据科学任务的引擎,那么 IPython 就是一个交互式控制面板。
    文章内容主要来源于书籍和日常使用经验积累。

    1. shell 和 notebook

    使用 IPython 的方式有两种,分别是IPython shell 和 IPython Notebook。

    1.1. 启动方法

    在命令行中输入 ipython,启动 IPython 解释器。

    $ ipython
    Python 2.7.15 |Anaconda, Inc.| (default, Dec 14 2018, 13:10:39) 
    Type "copyright", "credits" or "license" for more information.
    
    IPython 5.8.0 -- An enhanced Interactive Python.
    ?         -> Introduction and overview of IPython's features.
    %quickref -> Quick reference.
    help      -> Python's own help system.
    object?   -> Details about 'object', use 'object??' for extra details.
    
    In [1]: 
    
    

    在命令行输入jupyter notebook ,默认浏览器将会自动打开,并且自动导航到localhost 网址,启动notebook,jupyter界面如下图所示:


    jupyter notebook

    2. 查看帮助文档

    python中的模块数量是海量的,同时,在使用模块中的函数前,也需要阅读docstring对其用法有个基本了解。本小节介绍查看这些帮助的方法。
    符号 ? 用于浏览文档,符号 ?? 用于浏览源代码,而 Tab 键可以用于自动补全。

    ?放置于模块或者方法后方,其作用类似于help(),展示说明字符串(docstring):



    注意jupyter的 len?命令的帮助文档在底部。


    ?? 双问号可以获得python的源代码,但是这里注意使用??查看的模块或者方法必须是用python实现的,如果使用C实现是看不了源码的。
    TAB键类似于Linux,做提示用的,例如下边的random.ra[TAB] 给出的列表。



    上边介绍的TAB键,解决了后缀匹配的问题。假如我们脑海中有一个要使用的函数,但是只记得尾部,这时希望ipython可以提醒我们,可以使用如下的办法完成。 使用星号* 和问号? 共同完成此问题,如下是实例。

    3.快捷键

    涉及到熟练操作的记忆,可以参考下边文章:
    Mac jupyter notebook的快捷键:https://www.jianshu.com/p/20f6a77dd23c

    4.魔法命令

    IPython 在普通 Python 语法基础之上的增强功能。这些功能被称作 IPython 魔法命令,并且都以 % 符号作为前缀。分为行魔法单元魔法
    行魔法以单个 % 字符作为前缀,作用于单行输入;单元魔法以两个 %% 作
    为前缀,作用于多行输入。

    1. %paste和%cpaste
      允许直接拷贝代码并执行。
    2. %run
      可以执行外部代码
    %run hello.py
    

    运行该语句后,脚本中出现的函数,也可以在IPython会话中使用。

    1. %timeit
      该项可以自动计算接下来一行的Python 语句的执行时间。这个功能在性能优化时,有较大作用。
      同样地,也可以在魔法命令后加问号,来查看该命令的帮助文档。
    %timeit l = [n**2 for n in range(10000)]
    %timeit?
    
    1. %magic和%lsmagic
      这两项可以列出我们环境中可以使用的所有魔法命令。
    2. %history
      输出所有输入的历史命令。

    5.输入和输出历史 和 shell

    5.1 查看历史命令

    在IPython会话中,可以看到In和Out (输入是In,输出是Out)。IPython 实际上创建了叫作 In 和 Out 的 Python 变量。In 对象是一个列表,例如In[1] 可以表示第一条命令。Out 对象不是一个列表,而是一个字典。这是因为并不是每一个输入都有输出,Out的访问不能是连续,只有有输出的序号,才能访问该Out。
    访问历史第38条的输出,可以有以下两种写法:

    print Out[38]
    print _38
    

    5.2 禁止输出

    如果想关闭某条语句的输出内容,直接在该语句后加分号即可,例如下边语句将不再输出任何内容:

    import math
    math.sin(2);
    

    5.3 系统命令

    在感叹号后边的语句,是执行的系统语句,例如!ls 将在操作系统层面执行ls命令。同时,也支持将系统命令的执行结果赋予一个python变量,如下边例子生成了一个list:

    files = !ls
    files
    

    相关文章

      网友评论

        本文标题:IPython介绍

        本文链接:https://www.haomeiwen.com/subject/kaxqyctx.html