本文编写时,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

IPython介绍的更多相关文章

  1. 金融量化分析【day110】:IPython介绍及简单操作

    一. IPython介绍 ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能 ...

  2. ipython介绍及使用

    1. IPython介绍 ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能 ...

  3. IPython介绍及安装

    IPython介绍 - CSDN博客https://blog.csdn.net/gavin_john/article/details/53086766 python命令行在windows下实现tab自 ...

  4. 开发技术-IPython介绍

    开发技术-IPython介绍 IPython是交互式的Python命令行,希望大家喜欢. 最近在回顾之前学习的内容,并且继续学习新的知识.这种自身的感觉,很不一般,有太多的感想产生.希望自己可以坚持将 ...

  5. pandas介绍及环境部署

    pandas介绍 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的 ...

  6. Ipython\Jupyter数据分析工具

    使用Python进行数据分析优点 1 Python大量的库为数据分析和处理提供了完整的工具集 2 比起R和Matlab等其他主要用于数据分析的编程语言,Python更全能 3 Python库一直在增加 ...

  7. IPython introduction

    转载:http://blog.csdn.net/gavin_john/article/details/53086766 1. IPython介绍 ipython是一个python的交互式shell,比 ...

  8. PyCharm控制台python shell 和 IPython shell的切换

    1. IPython介绍 IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许 ...

  9. 开发技术--Python核心知识A

    开发|Python核心知识A A篇,主要介绍Python基础中列表,元祖,字典,集合,字符串,I/O,条件与循环,异常处理的底层知识与使用的注意事项. 希望大家对于Python会有新的收获,本篇不同于 ...

随机推荐

  1. intellj idea show "run dashboard" panel

    workspace.xml edit this point <component name="RunDashboard"> <option name=" ...

  2. Codeforces Round #355 (Div. 2) D. Vanya and Treasure

    题目大意: 给你一个n × m 的图,有p种宝箱, 每个点上有一个种类为a[ i ][ j ]的宝箱,a[ i ][ j ] 的宝箱里有 a[ i ][ j ] + 1的钥匙,第一种宝箱是没有锁的, ...

  3. Go语言 IDE之Gogland配置使用

    Gogland 是 JetBrains 公司推出的 Go 语言集成开发环境.Gogland 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系.目前正式版尚未发布.官方:htt ...

  4. 使用React Hooks新特性useReducer、useContext替代传统Redux高阶组件案例

    当我们使用redux进行数据管理的时候,一般都是在根组件通过Provider的方式引入store,然后在每个子组件中,通过connect的方式使用高阶组件进行连接,这样造成的一个问题是,大量的高阶组件 ...

  5. 手动搭建ABP2.1.3——基础框架

    一.基础层搭建 1,创建一个空解决方案 2,层结构 Demo.Core[v:4.6.1]:类库 Demo.EntityFramework[v:4.6.1]:类库(引用Demo.Core) Demo.A ...

  6. 7617:输出前k大的数

    7617:输出前k大的数 查看 提交 统计 提问 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 给定一个数组,统计前k大的数并且把这k个数从大到小 ...

  7. 牛客网某比赛 I 小乐乐学博弈 博弈论

    题目大意: 有两堆石子\(n\)和\(m\),每次可以拿\(1 \sim k\)个 \(k >= |n - m|\) 问先手必胜? 把限制条件去掉才有意思 首先考虑两堆相等,那么先手怎么操作,后 ...

  8. Codeforces Round #368 (Div. 2) D. Persistent Bookcase 离线 暴力

    D. Persistent Bookcase 题目连接: http://www.codeforces.com/contest/707/problem/D Description Recently in ...

  9. hdu 5768 Lucky7 容斥

    Lucky7 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5768 Description When ?? was born, seven crow ...

  10. ZOJ 2702 Unrhymable Rhymes 贪心

    贪心.能凑成一组就算一组 Unrhymable Rhymes Time Limit: 10 Seconds      Memory Limit: 32768 KB      Special Judge ...