ipython使用技巧
一、ipython简介
ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。学习ipython将会让我们以一种更高的效率来使用python。同时它也是利用Python进行科学计算和交互可视化的一个最佳的平台。
IPython提供了两个主要的组件:一个强大的python交互式shell ;供Jupyter notebooks使用的一个Jupyter内核(IPython notebook)。IPython Notebook有一个重要的特点就是:可重复性的互动计算,这意味着我们可以重复更改并且执行曾经的输入记录。它可以保存成其他很多格式,比如Python脚本,HTML,PDF等,所以它可以记录我们的演算过程。很多课程,博客以及书籍都是用Notebook写的。
ipython相比于原生的python有什么优势
-
python shell不能在退出保存历史;ipython历史记录自动保存:保存在history.sqlite文件下:可用“”、“”、“”调用最近三次记录;
-
python shell不支持tab自动补全;ipython支持tab补全
-
python shell不能快速获取类、函数信息;ipython通过“?”显示对象签名、文档字符串、代码位置,通过“??”显示源代码;(4) python shell不能直接执行shell命令,需要借助sys;ipython通过“!”调用系统命令,如“!uptime”;
-
其他ipython有很多magic函数,可通过使用%lsmagic枚举;
%run:运行python文件
%edit:使用编辑器打开当前函数编辑
%save:把某些历史记录保存到文件
%debug:激活debug程序
等等,后面会讲到
-
ipython有很多快捷键
-
ipython的扩展宏系统、storemagic持久化宏、变量、别名;以及autoreload自动重载等功能;
其他还有:
- Python对象在ipython环境下排版得更好,格式化更加美观
- 提供更强大的交互体验
二、ipython的内省
ipython相较于原生的python,提供了更加强大的内省功能,所谓内省,也称之为内视,即 object introspection
主要有以下一些常见的方法:
object? 或者?object :显示该对象的一些通用信息,注意python里面一切皆对象哦,包括函数、类。
object?? 或者??object:两个问号显示详细信息,如果是类或者是函数,还会显示源代码。即将问号放在前面和后面都可以。
通配符*匹配:如
numpy.load? 这会显示所有的包含有load的函数
numpy.*sort? 这会显示所有以sort结尾的函数
三、ipython快捷键
-
Ctrl-P 或上箭头键 后向搜索命令历史中以当前输入的文本开头的命令
-
Ctrl-N 或下箭头键 前向搜索命令历史中以当前输入的文本开头的命令
-
Ctrl-R 按行读取的反向历史搜索(部分匹配)
-
Ctrl-Shift-v 从剪贴板粘贴文本
-
Ctrl-C 中止当前正在执行的代码
-
Ctrl-A 将光标移动到行首
-
Ctrl-E 将光标移动到行尾
-
Ctrl-K 删除从光标开始至行尾的文本
-
Ctrl-U 清除当前行的所有文本译注12
-
Ctrl-F 将光标向前移动一个字符
-
Ctrl-b 将光标向后移动一个字符
-
Ctrl-L 清屏