这是原书第三章内容总结,第一次写文章,有什么不对的,还请大家指出来哈~

终于写完啦~
Ipython 基础
基本命令
## 以下用>>> 表示命令行输入
>>> ipython # 启动方式一
>>> ipython --pylab #启动方式二(用于绘图)
>>> b = [1,2,3] #举例
>>> b? # ?(內省)将对象的通用信息显示出来
# 还可用于函数,显示函数源代码
Type: list
String form: [1, 2, 3]
Length: 3
Docstring:
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
魔术命令
# 定义脚本 ipython_test.py
# def f(x,y,z)
# return (x+y)/z
# a = 5
# b = 6
# c = 7.5
# result = f(a,b,c)
# %run 将脚本文件当作Python程序来运行
# 之后便可在shell中访问脚本文件中全部变量
>>> %run -i ipython_test.py
## 执行剪贴板的代码
>>> %paste #回车后,直接执行已经在剪贴板中的代码
>>> %cpaste #回车后,将代码复制于下方,并输入“--”结尾
# 以'%'为前缀的命令
>>> import numpy as np #import 用来加入python库
>>> from numpy.random import randn
>>> a = np.random.randn(100,100) # 以随机值填充100*100的矩阵
>>> %timeit np.dot(a,a) # dot 矩阵乘法
# %timeit 检测python语句执行时间
常用的Ipython魔术命令
| 命令 | 解释 |
|---|---|
| %quickref | 显示 IPython 快速参考 |
| %debug | 从最新的异常跟踪的底部进入交互式调试器 |
| %hist | 打印命令的输入(可选输入)历史 |
| %pdb | 在异常发生后自动进入调试器 |
| %reset | 删除 interactive 命名空间中的全部变量 |
| %run script.py | 执行 script.py |
| %prun statement | 通过 cProfile 执行对 statement的逐行性能分析 |
| %time statement | 测试 statement 的执行时间 |
| %timeit statement | 多次测试 statement 的执行时间并计算平均值 |
| %who、%who_ls、%whos | 显示 interactive 命名空间中定义的变量,信息级别/冗余度可变 |
| %xdel variable | 删除 variable ,并尝试清除其在 IPython 中的对象上的一切引用 |
| !cmd | 在系统 shell 执行cmd |
| output=!cmd args | 执行cmd 并赋值 |
| %bookmark | 使用 IPython 的目录书签系统 |
| %cd <i>direcrory</i> | 切换工作目录 |
| %logstart | 记录整个会话,包括之前的命令 |
| %dhist | 打印目录访问历史 |
| %pwd | 返回当前工作目录(字符串形式) |
| %env | 返回当前系统变量(以字典形式) |
对魔术命令不熟悉的话可以通过 %magic 查看详细文档;对某一个命令不熟悉的话,可以通过 %cmd? 内省机制查看特定文档。值得一提的是,IPython 中使用 del 命令无法删除所有的变量引用,因此垃圾回收机制也无法启用,所以有些时候你会需要使用 %xdel 或者 %reset。
Ipython 主要操作快捷键
<Tab> 自动匹配当前命名空间函数等
Ctrl-C 中止当前正在执行的代码
Ctrl-A 将光标移动到行首
Ctrl-E 将光标移动到行尾
Ctrl-K 删除从光标开始至行尾的文本
Ctrl-U 删除从光标开始至行首的文本
Ctrl-L 清屏
(I)Python调试器命令
| 命令 | 解释 |
|---|---|
| h(elp) | 显示命令列表 |
| help <i>command</i> | 显示 <i>command</i> 的文档 |
| c(ontinue) | 恢复程序的执行 |
| q(uit) | 退出调试器,不再执行任何代码 |
| b(reak) <i>number</i> | 在当前文件的第<i>number</i> 行设置一个断点 |
| b path/to/ <i>file.py:number</i> | 在指定文件的第<i>number</i> 行设置一个断点 |
| s(tep) | 单步进入函数调用 |
| n(ext) | 执行当前行,并前进到当前级别的下一行 |
| u(p)/d(own) | 在函数调用栈中向上或向下移动 |
| a(rgs) | 显示当前函数的参数 |
| debug <i>statement</i> | 在新的(递归)调试器中调用语句<i>statement</i> |
| l(ist) <i>statement</i> | 显示当前行,以及当前栈级别上的上下文参考代码 |
| w(here) | 打印当前位置的完整栈跟踪(包括上下文参考代码) |
今天的内容就这么多,欢迎交流,共同进步哈~