IPython是一个交互式python命令行。python
$ pip3 install ipython
In表明输入,响应的结果则显示在Out中。与python解释器的使用方法一致。web
In [1]: 1+2 Out[1]: 3 In [2]: a=1 In [3]: a+2 Out[3]: 3
内省操做,说明前面是模糊匹配。性能优化
命名空间搜索(查看内置方法):a.__*__?函数
打印方法的字符串信息:性能
打印自定义函数信息,??会打印出函数体优化
执行复杂命令的时候,须要在命令前加“!”ui
# 例如执行下述代码,就能够进行文件编辑 In [21]: !vi test.py
文件编辑以下所示:命令行
利用%run来执行test.py文件:debug
%paste执行后,先打印出粘贴的代码,而后打印执行结果。3d
%timeit对一个执行的时间很短的函数跑了不少次最后取了一个平均值。
输出的含义是运行了7次,每次循环了10000次。平均以后算出来这个操做的平均时间是144 µs ± 3.59 µs.
这个方法的意义在于,拿到一个特别微小的指令完成所须要花费的时间,对代码总体的性能优化可能会有帮助。
%pdb on——启动pdb,进入调试模式;
%pdb off——关闭pdb,退出调试模式。
进入调试模式后,在ipython解释器中执行代码,能够经过调试命令调试代码。
调试器经常使用调试命令以下所示:
命令 功能 h(elp) 显示命令列表 help command 显示command的文档 c(ontinue) 恢复程序的执行 q(uit) 退出调试器,再也不执行任何代码 b(reak) number 在当前文件的第number行设置一个断点 b path/to/file.py:number 在指定文件的第number行设置一个断点 s(tep) 单步进入函数调用 n(ext) 执行当前行,并前进到当前级别的下一行 u(p)/d(own) 在函数调用栈中向上或向下移动 a(rgs) 显示当前函数的参数 debug statement 在新的(递归)调试器中调用语句statement l(ist) statement 显示当前行,以及当前栈级别上的上下文参考代码 w(here) 打印当前位置的完整栈跟踪(包括上下文参考代码)
可是最主要最经常使用的命令仍是“p”,即打印,效果以下所示:
除了上面这些命令外,还具有一些高级的应用:
In [47]: a = 1 In [48]: b = 2 In [49]: a + b Out[49]: 3 # 显示上一行的输出 In [50]: _ Out[50]: 3 In [51]: a*b Out[51]: 2 In [52]: _*__ # 上一行的输出和上上行输出相乘 Out[52]: 6 # 拿到输入 In [53]: _i42 Out[53]: 'p a' In [54]: _i52 Out[54]: '_*__'
# 查看当前全部bookmark In [55]: %bookmark -l Current bookmarks: # 将home设置为本身的家目录 In [72]: %bookmark home ~ # 建立一个bookmark In [63]: %bookmark proj /Users/alex/Documents/ In [75]: %bookmark -l # 查看当前全部bookmark Current bookmarks: home -> ~ proj -> /Users/alex/Documents/ # 删除某一个bookmark In [67]: %bookmark -d home # 删除全部bookmark In [69]: %bookmark -r In [70]: %bookmark -l # 查看当前全部bookmark Current bookmarks:
In [76]: !pip3 install jupyter # jypyter就是开发ipython的公司 # 安装好后再命令行运行notebook,运行后会自动打开一个http://localhost:8888/tree页面 hqs$ jupyter notebook
这个页面其实就是一个文件管理系统,建立一个Notebook:
输入代码并执行: