IPython

一、获取帮助和文档
(1) help(formula) (2)len? 方法(2)不仅适用于查找帮助文档,也适用于对象方法,例如
L=[1,2,3] L.insert? 可以得到对L应用insert函数的具体用法
甚至可以查看对象本身L?,或者查看自己创建的函数square?

二、获取源代码

square??

如果后缀??不能获得源代码,就说明源代码不是用python语言写的。

三、Tab键补全

(1)如果想对某一个对象应用一些方法,可以L.

(2)导入包自动补全 from itertools import co<TAB>

(3)通配符匹配

四、IPython命令

执行外部文件:%run filename.py (类似R的source)

计算代码运行时间:%timeit +代码

禁止输出:在行末尾添加分号;

查看历史命令:%history结果没有显示行号; %history -n结果会输出素所有的历史命令,并且显示行号;%history -n 1-4显示历史的前四条命令

五、报错和调试

(1)查看报错轨迹:xmode

可以通过轨迹追溯(traceback)定位错误。Spyder默认的打印错误轨迹的模式是Plain;可以切换成%xmode Context给出的信息较多;%xmode Verbose还会给出被调用的函数的参数

(2)调试:%debug

在异常点位置打开一个交互式调试提示符ipdb,然后可以通过打印很多中间变量来找到错误原因

六、代码计时和分析

(1)%time

对单个语句的执行时间进行计时,但是不一定准确,适合代码运行时间较长且重复执行会时间有偏差的情况。 %%time对应多行代码计时。

(2)%timeit

对单个语句重复执行进行计时,相当于多次试验求平均,精确度更高。但是不适合某些排序或者循环(因为不能保证每次执行时间都差不多)。 %%timeit对应多行代码计时。

(3)%prun

分析整个脚本的耗时情况

(4)%lprun

对有函数逐行进行分析,可以优化函数内部。使用的时候import line_profiler

使用时%lprun -f function function(parameter)

(5)内存分析:使用的时候import memory_profiler

%memit:直接%memit function()

%mprun:需要先创建.py模块,然后重新导入函数,具体使用语法和%lprun一样