• IPython介绍


    本文编写时,IPython最新的版本为6.3和5.4。

    介绍

    IPython 是 Fernando 在 2001 开始开发的一个交互式的Python解释执行环境。众所周知,Python提供了一个交互执行的环境,在命令行输入python或者python3就可以进入Python的命令行环境,但在实际工作中并不方便,IPython则提供了一个更为强大的环境,主要包括以下几方面内容:

    • 一个强大的交互式Shell环境
    • Jupyter内核
    • 支持交互式的数据可视化
    • 灵活,可被嵌入到单独的工程中
    • 使用简单,并行计算的高效工具

    本文依次介绍这几个方面,方便大家熟悉IPython环境。

    Mac 下的安装

    安装非常简单,我的Python版本时3.6,所以用了 pip3,如果需要jupyter notebook或者Qt支持,也需要同步安装jupyter。Python数据分析这本书中推荐使用EDM这是一个集成环境,可能对软件依赖管理的比较好,其实自己安装也没什么问题。

    pip3 install ipython
    pip3 install jupyter
    
    # 如果需要交互式的可视化终端,还需要安装pytq5
    pip3 install pyqt5
    
    

    交互式Shell环境

    命令行输入IPython就可以进入ipython的环境,输入前面包含In和行号,输出包含Out和行号。

    与操作系统交互

    IPython和操作系统结合的非常紧密,可以直接在命令行中执行操作系统的命令。

    Tab补齐与提示

    在IPython的界面中,按Tab键可以做很多工作,如果执行Shell命令,tab可以补齐文件名,如果是Python代码,可以补齐变量名,用.之后,可以提示对象包含的属性和方法。

    记录命令历史

    IPython在本地磁盘维护了一个小型的数据库来记录用户输入的历史以及输出的日志,并且提供了几个快捷键,方便大家快速查找历史命令。还可以用%hist来查看输入的历史记录。

    快捷键 功能描述
    Ctrl + P 向上搜索历史,等同于向上箭头
    Ctrl + N 向下搜索历史,等同于向下箭头
    Ctrl + R 增量搜索历史记录,这个命令玩过Linux的同学应该比较熟悉

    输入和输出变量

    IPython环境对用户的输入和输出都会记录。输入变量保存在_iX格式的变量中,X表示行号。如果我们想查看第2行的输入内容,可以使用_i2

    目录书签系统

    IPython提供了一个简单的目录书签系统,可以方便我们快速切换目录。书签会被自动初始化,这样可以在不同会话间保留。

    In [1]: %bookmark -l
    Current bookmarks:
    baby -> /Users/rousseau/Projects/python.my/pydata-book/datasets/babynames
    
    In [2]: %bookmark moviedb /Users/rousseau/Projects/python.my/pydata-book/datasets/movielens
    
    In [3]: %bookmark -l
    Current bookmarks:
    baby    -> /Users/rousseau/Projects/python.my/pydata-book/datasets/babynames
    moviedb -> /Users/rousseau/Projects/python.my/pydata-book/datasets/movielens
    

    对象内省 Comprehensive object introspection

    使用 ? 可以查看对象的一些信息。

    使用 ?? 可以查看对象的源码(如果可能)

    魔术命令

    IPython中提供了一些以%开头的特殊命令,我们称这些命令为魔术命令 Magic Command。魔术命令可以认为是IPython系统中的命令行程序,使用?可以查看选项。魔术命令也可以不带百分号直接使用,只要没有定义与其同名的变量就可以,这个技术叫做 automagic ,可以通过 %automagic 打开或关闭。可以在IPython中查看相关文档,输入%magic即可。

    常用的魔术命令

    命令 命令解释
    %quickref 现实IPython的快速参考
    %magic 显示所有magic命令的详细文档
    %debug 从最新的异常跟踪的底部进入交互式调试器
    %hist 打印命令输入的历史
    %timeit 测试脚本的运行时间,多次执行以获得代码的平均执行时间
    %automagic 控制automagic功能是否开启
    %paste 执行剪贴板中的Python代码
    %reset 删除interactive命名空间中的全部变量/名称
    %run script.py 在IPython中执行一个Python脚本
    %logstart 开始会话日志记录功能

    %run 命令

    在IPython环境中,所有文件都可以通过%run命令当作Python程序来运行。我理解就是把Python脚本放到一个新的命名空间中进行后台运行,通过IPython交互环境,可以调用现实Python程序中的变量。

    执行剪贴板中的代码

    对于一线代码片段,可以拷贝到IPython的环境中执行查看结果,但是对于有空行的代码,直接使用操作系统的复制粘贴快捷键会报错,这个时候需要使用%paste%cpaste这两个魔术函数。%paste函数会将粘贴板中的代码粘贴到交互式命令行中。%cpaste函数执行后,进入一个交互环境,只有输入__或者Ctrl+D才结束代码的复制。

    交互式数据可视化

    IPython支持给予Qt框架的GUI控制台,如下图所示。如果需要交互环境,需要安装PyQt5。

    IPython可以与matplotlib密切结合。

    开发调试利器

    %debug
    %pdb

    本文为作者原创,如果您觉得本文对您有帮助,请随意打赏,您的支持将鼓励我继续创作。

    参考资料:
    1、IPython
    2、Jupyter
    3、matplotlib

  • 相关阅读:
    spring之通过实例工厂方法配置Bean
    spring之通过静态工厂方法配置Bean
    spring之添加后置处理器的bean的生命周期
    spring之未加后置处理器的bean的生命周期
    TreeMap源码分析——基础分析(基于JDK1.6)
    HashMap源码分析(基于JDK1.6)
    left join 和 left outer join 的区别
    开发者必备的6款源码搜索引擎
    理想的技术面试过程
    一篇学习HTTP状态码的神文:我与依依的橙色岁月
  • 原文地址:https://www.cnblogs.com/cocowool/p/8119126.html
Copyright © 2020-2023  润新知