IPython介绍及使用

一、Ipython入门

  IPython是一个交互式python命令行。

(1)安装IPython

$ pip3 install ipython

(2)ipython的使用

  In代表输入,响应的结果则显示在Out中。与python解释器的使用方法一致。

In [1]: 1+2                                                                                                                                        
Out[1]: 3

In [2]: a=1                                                                                                                                        

In [3]: a+2                                                                                                                                        
Out[3]: 3

二、IPython高级功能

1、TAB键自动补全

  

2、?:内省、命名空间搜索

   内省操作,说明前面是模糊匹配。

  

  命名空间搜索(查看内置方法):a.__*__?

  打印方法的字符串信息:

  

  打印自定义函数信息,??会打印出函数体

  

3、!:执行系统命令

  

  执行复杂命令的时候,需要在命令前加“!”

  

4、丰富的快捷键

  

三、ipython魔术命令

1、%run:执行文件代码

# 例如执行下述代码,就可以进行文件编辑
In [21]: !vi test.py   

  文件编辑如下所示:

  

  利用%run来执行test.py文件:

  

2、%paste:执行剪贴板代码

  

  %paste执行后,先打印出粘贴的代码,然后打印执行结果。

3、%timeit:评估运行时间

  %timeit对一个执行的时间很短的函数跑了很多次最后取了一个平均值。

  

  输出的含义是运行了7次,每次循环了10000次。平均之后算出来这个操作的平均时间是144 µs ± 3.59 µs.

  这个方法的意义在于,拿到一个特别微小的指令完成所需要花费的时间,对代码整体的性能优化可能会有帮助。

4、%pdb:自动调试

  %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”,即打印,效果如下所示:

  

5、ipython其他魔术命令

  

   除了上面这些命令外,还具备一些高级的应用:

  • 使用命令历史
  • 获取输入输出结果
    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:
    
  • ipython Notebook(web版的代码展示器)
    In [76]: !pip3 install jupyter    # jypyter就是开发ipython的公司
    
    # 安装好后再命令行运行notebook,运行后会自动打开一个http://localhost:8888/tree页面
    hqs$ jupyter notebook
    

    这个页面其实就是一个文件管理系统,创建一个Notebook:

    输入代码并执行:

   

posted @ 2019-01-27 10:13  休耕  阅读(3628)  评论(0编辑  收藏  举报