內建線條和單元格魔法
名字以一個%
開頭的魔術以該線的其餘部分作為引數,被稱為線魔法。以雙百分號%%
開頭的魔術採用多線論證,被稱為單元格魔法。
一個常用的魔法是 %timeit
,它是 Python 的 timeit.timeit
函式的包裝器,用於測量一段程式碼的執行時間。
In [35]: ra = [random.randint(0,1000) for r in range(1000)]
In [35]: %timeit sorted(ra)
1000 loops, best of 3: 507 µs per loop
單元格魔法的一個例子是%%bash
(相當於%%script bash
),用於將輸入作為 bash 程式碼執行
In [49]: %%bash
...: i=3
...: while [ $i -ge 0 ]
...: do
...: echo $i
...: i=$(($i-1))
...: done
...:
3
2
1
0
請注意,單元格的末尾用空行標記。
要檢視所有內建魔法,請使用%lsmagic
In [51]: %lsmagic
Out[51]:
Available line magics:
%alias %alias_magic %autocall %autoindent %automagic %bookmark %cd %cls
%colors %config %copy %cpaste %ddir %debug %dhist %dirs %doctest_mode
%echo %ed %edit %env %gui %hist %history %killbgscripts %ldir %load
%load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic
%macro %magic %matplotlib %mkdir %notebook %page %paste %pastebin %pdb
%pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile
%prun %psearch %psource %pushd %pwd %pycat %pylab %quickref %recall
%rehashx %reload_ext %ren %rep %rerun %reset %reset_selective %rmdir %run
%save %sc %set_env %store %sx %system %tb %time %timeit %unalias
%unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%! %%HTML %%SVG %%bash %%capture %%cmd %%debug %%file %%html
%%javascript %%js %%latex %%perl %%prun %%pypy %%python %%python2 %%python3
%%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.
請注意,預設情況下,‘automagic’處於啟用狀態,因此可以在沒有%
字首的情況下呼叫行魔法(但是單元格函式仍然需要%%
字首)。