粘贴代码块:%paste和%cpaste
直接粘贴多行代码块可能会报错,特别是当其中包含缩进或者解释性标记的时候。
IPython的%paste就适用于这种情况,
In [3]: %paste
>>> def donothing(x):
... return x
## -- End pasted text --
%paste既输入又执行code,所以现在得到的结果是:
In [4]: donothing(10)
Out[4]: 10
还有一个类似的函数是%cpaste,它会显示一个开放的交互式页面,所以你可以在里面粘贴多个代码块并批量执行。
In [5]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:>>> def donothing(x):
:... return x
:--
运行外部代码:%run
当您开始开发更广泛的代码时,您可能会发现自己既使用 IPython 进行交互式探索,又使用文本编辑器来存储要再用的代码,
与其在新窗口中运行此代码,不如在 IPython 会话中运行更方便,
这时候用%run就会很方便,
比如说你写了一个py脚本myscript.py如下:
#-------------------------------------
# file: myscript.py
def square(x):
"""square a number"""
return x ** 2
for N in range(1, 4):
print(N, "squared is", square(N))
你可以用IPython运行此脚本,如下:
In [6]: %run myscript.py
1 squared is 1
2 squared is 4
3 squared is 9
注意,运行完这个脚本以后这个脚本包含的所有函数都可以在IPython调用。
计时代码:%timeit
%timeit会自动计算其后的单行 Python 语句的执行时间,比如我们想要看一下理解list的表现:
In [8]: %timeit L = [n ** 2 for n in range(1000)]
1000 loops, best of 3: 325 µs per loop
多加一个%的话可以计算多行代码的运行时间
In [9]: %%timeit
...: L = []
...: for n in range(1000):
...: L.append(n ** 2)
...:
1000 loops, best of 3: 373 µs per loop
想获得某个magic命令的帮助文档,可以输入%magic?
想获得IPython包含的magic命令的一般介绍包括示例,你可以输入%magic
如果只想获得列表,你可以输入 %lsmagic