IPython体验交互式编程

简介

IPython是一款高效的python交互式解释器,相比python自带的python shell功能更多更强大。它的强大体现在交互式计算和软件开发等方面,能够提高生产力。并且还能跟操作系统shell和文件之间产生互动,有助于提高工作效率。

安装和使用

可以直接通过pip命令安装IPython:

安装成功后,像打开python一样,直接执行ipython就能打开IPython:

《IPython体验交互式编程》

在这里可以执行各种python语句,按下回车得到结果:

tab键补全

在输入过程中,可以通过tab键补全相关的变量、关键字和方法。节省许多不必要的时间以及减少输入错误,这点对新手来说非常重要。

《IPython体验交互式编程》

内省

通过在变量的前面或后面加上一个?可以将该对象的通用信息显示出来:

除此之外,还能够搜索命名空间:

常用快捷键命令

IPython中常用的快捷命令如下:

命令 描述
(ctrl+p)或向上箭头键 后向搜索命令历史中以当前输入的文本开头的命令
(ctrl+n)或向下箭头键 前向搜索命令历史中以当前输入的文本开头的命令
ctrl+r 按行读取的反向历史搜索
ctrl+shift+v 从剪贴板粘贴文本
ctrl+c 中止当前正在执行的代码
ctrl+a 将光标移至行首
ctrl+e 将光标移至行尾
ctrl+k 删除从光标开始至行尾的文本
ctrl+u 清除当前行的所有文本
ctrl+f 将光标向前移动一个字符
ctrl+b 将光标向后移动一个字符
ctrl+l 清屏

魔术命令

在IPython中有一些命令可以完成许多有趣的操作,称为魔术命令。常见的魔术命令如下:

命令 描述
%quickref 显示IPython的快速参考
%magic 显示所有魔术命令的详细文档
%debug 从最新的异常跟踪的底部进入交互式调试器
%hist 打印命令的输入历史
%pdb 在异常发生后自动进入调试器
%paste 执行剪贴板中的Python代码
%cpaste 打开一个特殊提示符以便手工粘贴待执行的Python代码
%reset 删除interactive命名空间中的全部变量名称
%page OBJECT 通过分页器打印输出OBJECT
%run script.py 在IPython中执行一个python脚本
%prun statement 通过cProfile执行statement,并打印分析器的输出结果
%time statement 报告statement的执行时间
%timeit statement 多次执行statement以计算系综平均执行时间。对那些执行时间非常小的代码很有用
%who、%who_ls、%whos 显示interactive命名空间中定义的变量,信息级别/冗余度可变
%xdel variable 删除variable,并尝试清除其在IPython中的对象上的一切引用

魔术命令默认可以不带百分号也能使用。接下来讲介绍几个非常实用的魔术命令。

%paste

假设我们复制了如下代码:

接下来在IPython中输入%pastepaste就能够直接将剪切板中的代码放到IPython中立即执行。

代码演示:

%cpaste

%paste功能相似,只是多了一步,需要在输入%cpaste之后,手动粘贴代码到下面,最后输入--结束粘贴过程,并执行程序。

代码演示:

%reset

可以去除命名空间中的变量名称。

代码演示:

%run

该命令可以在IPython环境下运行python脚本文件。假设我们有一个ccc.py脚本文件,里面写入如下代码:

接着在IPython中输入如下代码:

%time

该命令能够计算程序运行的时间。

代码演示:

我们计算了ccc.py脚本运行的墙上时间。

%timeit

因为多次执行%time得到的结果都不一样,所以就有了该命令,能够计算多次测试的平均时间。

代码演示:

与操作系统交互

IPython可以很方便地调用操作系统的命令,比如执行shell命令、更改目录等。

代码演示:

与系统相关的IPython魔术命令如下:

命令 描述
!cmd 在系统shell中执行cmd
output=!cmd args 执行cmd,并将stdout存放在output中
%alias alias_name cmd 为系统shell命令定义别名
%bookmark 使用IPython的目录书签系统
%cd directory 将系统工作目录改为directory
%pwd 返回系统的当前工作目录
%pushd directory 将当前目录入栈,并转向目标目录
%popd 弹出栈顶目录,并转向该目录
%dirs 返回一个含有当前目录栈的列表
%dhist 打印目录访问历史
%env 以dict形式返回系统环境变量

总结

本文介绍了IPython的使用,它的功能很多。熟练掌握一些基本的操作技巧,结合魔术命令能够大大提高开发和测试的效率。除了上文提到的使用方式,IPython还和matplotlib这样的库结合在一起,能够实现交互式的数据分析和可视化。

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注

20 + 17 =