IPython:一种交互式计算和开发环境
IPython简介
Python开发环境:IPython + 一个文本编辑器。也可考虑用集成开发环境(IDE)来代替文本编辑器。有些IDE本身就集成了IPython。
大部分的数据分析代码都含有探索式操作(试误法和迭代法)
工作模式:“执行→探索”,而非“编辑→编译→运行”。
绘图操作的GUI控制台。
IPython的核心功能:交互。
Anaconda可以看成是Python的一个集成安装,安装完Anaconda之后就默认安装了python、IPython、集成开发环境SPyder和众多的包和模块。
In [1]: import numpy as np
In [2]: from numpy.random import randn
In [3]: data = {i : randn() for i in range(7)}
In [4]: data
Out[4]:
{0: -1.5947160703426004,
1: 1.3069398014806806,
2: -0.83610299444972,
3: -1.8243443377338024,
4: -1.4313897270149214,
5: 1.5696558137799446,
6: -1.373459610134893}
IPython中,Tab键自动完成功能
(1)搜索命名空间,自动查找出当前命名空间中任何与已经输入的字符串相匹配的变量(对象、函数等)。
(2)自动完成对象或模块属性(xx.Tab)。
(3)文件系统路径匹配。当输入任何看上去像文件路径的东西时,按下Tab键即可找出电脑文件系统中与之匹配的东西。
内 省
在变量的前面或者后面加上一个问号(?Or??)就可以将有关该对象的一些通用信息显示出来:
变量名称后面加问号(?);函数名称后面加问号(?、??);np.*load*?
In [17]: b?
Type: list
String form: [1, 2, 3, 5]
Length: 4
Docstring:
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
%run命令
在IPython回话环境中,所有的文件都可以通过%run命令当做Python程序来运行。假设你在test.py中存放了一段简单的脚本,如下所示:
def f(x,y,z):
return (x+y)/z
a = 5
b = 6
c = 7.5
result = f(a,b,c)
只需要将文件名传给%run就可以运行了:
In [1]: %run C:\Users\Administrator\Desktop\test.py
In [3]: a
Out[3]: 5
In [4]: result
Out[4]: 1.4666666666666666
如果Python脚本需要用到命令行参数(通过sys.argv访问),可以将参数放到文件路径的后面,就像在命令行上执行那样。
注意:如果希望脚本能够访问在交互式IPython命名空间中定义的变量,那就应该使用%run-i而不是%run。
中断正在执行的代码
通过按“Ctrl+C”,可以中断任何在执行的代码,并引发一个KeyboardInterrupt。除非一些非常特殊的情况外,绝大部分Python程序都将立即停止执行。
执行剪贴板中的代码
在IPython中执行代码的最简单方式是粘贴剪贴板中的代码。
多数情况下,我们都可以通过“Ctrl-Shift-V”将剪贴板中的代码片段粘贴出来(代码中有换行符不行,换行符会被处理为)。
%paste和%cpaste的使用。
IPython跟编辑器和IDE之间的交互
键盘快捷键
IPython标准键盘快捷键
命令 说明
Ctrl-Shift-v 从剪贴板粘贴文本
Ctrl-C 终止当前正在执行的代码
异常和跟踪
如果%run某段脚本或执行某条语句时发生了异常,IPython默认会输出整个调用栈跟踪(traceback),其中还会附上调用栈各点附近的几行代码作为上下文参考。
拥有额外的上下文代码参考是它相对于标准Python解释器的一大优势。上下文代码参考的数量可以通过%xcode魔术命令进行控制。
魔术命令
IPython中有一些特殊的命令,是以%或者两个百分号(%%)为前缀的命令。
常用的IPython魔术命令
命令 说明
%quickref 显示IPython的快速参考
%magic 显示所有魔术命令的详细文档
%pdb 在异常发生后自动进入调试器
还有很多......