Ipython 解释器

50次阅读

共计 3471 个字符,预计需要花费 9 分钟才能阅读完成。

进入 ipython
通常我们并不使用 Python 自带的解释器,而是使用另一个比较方便的解释器——ipython 解释器,命令行下输入:
ipython

即可进入 ipython 解释器。
所有在 python 解释器下可以运行的代码都可以在 ipython 解释器下运行:
print “hello, world”
hello, world

可以进行简单赋值操作:
a = 1
直接在解释器中输入变量名,会显示变量的值(不需要加 print):
a
1

b = [1, 2, 3]
ipython magic 命令
ipython 解释器提供了很多以百分号 % 开头的 magic 命令,这些命令很像 linux 系统下的命令行命令(事实上有些是一样的)。
查看所有的 magic 命令:
%lsmagic
Available line magics:
%alias %alias_magic %autocall %automagic %autosave %bookmark %cd %clear %cls %colors %config %connect_info %copy %ddir %debug %dhist %dirs %doctest_mode %echo %ed %edit %env %gui %hist %history %install_default_config %install_ext %install_profiles %killbgscripts %ldir %less %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %macro %magic %matplotlib %mkdir %more %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %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 %%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.

line magic 以一个百分号开头,作用与一行;
cell magic 以两个百分号开头,作用于整个 cell。
最后一行 Automagic is ON, % prefix IS NOT needed for line magics. 说明在此时即使不加上 % 也可以使用这些命令。
使用 whos 查看当前的变量空间:
%whos
Variable Type Data/Info
—————————-
a int 1
b list n=3

使用 reset 重置当前变量空间:
%reset -f
再查看当前变量空间:
%whos
Interactive namespace is empty.

使用 pwd 查看当前工作文件夹:
%pwd
u’C:\\Users\\lijin\\Documents\\Git\\python-tutorial\\01. python tools’

使用 mkdir 产生新文件夹:
%mkdir demo_test
使用 cd 改变工作文件夹:
%cd demo_test/
C:\Users\lijin\Documents\Git\python-tutorial\01. python tools\demo_test

使用 writefile 将 cell 中的内容写入文件:
%%writefile hello_world.py
print “hello world”
Writing hello_world.py

使用 ls 查看当前工作文件夹的文件:
%ls
驱动器 C 中的卷是 System
卷的序列号是 DC4B-D785

C:\Users\lijin\Documents\Git\python-tutorial\01. python tools\demo_test 的目录

2015/09/18 11:32 <DIR> .
2015/09/18 11:32 <DIR> ..
2015/09/18 11:32 19 hello_world.py
1 个文件 19 字节
2 个目录 121,763,831,808 可用字节

使用 run 命令来运行这个代码:
%run hello_world.py
hello world

删除这个文件:
import os
os.remove(‘hello_world.py’)
查看当前文件夹,hello_world.py 已被删除:
%ls
驱动器 C 中的卷是 System
卷的序列号是 DC4B-D785

C:\Users\lijin\Documents\Git\python-tutorial\01. python tools\demo_test 的目录

2015/09/18 11:32 <DIR> .
2015/09/18 11:32 <DIR> ..
0 个文件 0 字节
2 个目录 121,763,831,808 可用字节

返回上一层文件夹:
%cd ..
C:\Users\lijin\Documents\Git\python-tutorial\01. python tools

使用 rmdir 删除文件夹:
%rmdir demo_test
使用 hist 查看历史命令:
%hist
print “hello, world”
a = 1
a
b = [1, 2, 3]
%lsmagic
%whos
%reset -f
%whos
%pwd
%mkdir demo_test
%cd demo_test/
%%writefile hello_world.py
print “hello world”
%ls
%run hello_world.py
import os
os.remove(‘hello_world.py’)
%ls
%cd ..
%rmdir demo_test
%hist

ipython 使用
使用 ? 查看函数的帮助:
sum?
使用 ?? 查看函数帮助和函数源代码(如果是用 python 实现的):
# 导入 numpy 和 matplotlib 两个包
%pylab
# 查看其中 sort 函数的帮助
sort??
Using matplotlib backend: Qt4Agg
Populating the interactive namespace from numpy and matplotlib

ipython 支持使用 <tab> 键自动补全命令。
使用 _ 使用上个 cell 的输出结果:
a = 12
a
12

_ + 13
25

可以使用 ! 来执行一些系统命令。
!ping baidu.com

正在 Ping baidu.com [180.149.132.47] 具有 32 字节的数据:
来自 180.149.132.47 的回复: 字节 =32 时间 =69ms TTL=49
来自 180.149.132.47 的回复: 字节 =32 时间 =64ms TTL=49
来自 180.149.132.47 的回复: 字节 =32 时间 =61ms TTL=49
来自 180.149.132.47 的回复: 字节 =32 时间 =63ms TTL=49

180.149.132.47 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间 (以毫秒为单位):
最短 = 61ms,最长 = 69ms,平均 = 64ms

当输入出现错误时,ipython 会指出出错的位置和原因:
1 + “hello”
—————————————————————————

TypeError Traceback (most recent call last)

<ipython-input-25-d37bedb9732a> in <module>()
—-> 1 1 + “hello”

TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

正文完
 0