IPython介紹及使用

1、Ipython入門

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

(1)安裝IPython

$ pip3 install ipython

(2)ipython的使用

  In表明輸入,響應的結果則顯示在Out中。與python解釋器的使用方法一致。web

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

In [2]: a=1                                                                                                                                        

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

2、IPython高級功能

一、TAB鍵自動補全

  

二、?:內省、命名空間搜索

   內省操做,說明前面是模糊匹配。性能優化

  

  命名空間搜索(查看內置方法):a.__*__?函數

  打印方法的字符串信息:性能

  

  打印自定義函數信息,??會打印出函數體優化

  

三、!:執行系統命令

  

  執行復雜命令的時候,須要在命令前加「!」ui

  

四、豐富的快捷鍵

  

3、ipython魔術命令

一、%run:執行文件代碼

# 例如執行下述代碼,就能夠進行文件編輯
In [21]: !vi test.py   

  文件編輯以下所示:命令行

  

  利用%run來執行test.py文件:debug

  

二、%paste:執行剪貼板代碼

  

  %paste執行後,先打印出粘貼的代碼,而後打印執行結果。3d

三、%timeit:評估運行時間

  %timeit對一個執行的時間很短的函數跑了不少次最後取了一個平均值。

  

  輸出的含義是運行了7次,每次循環了10000次。平均以後算出來這個操做的平均時間是144 µs ± 3.59 µs.

  這個方法的意義在於,拿到一個特別微小的指令完成所須要花費的時間,對代碼總體的性能優化可能會有幫助。

四、%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」,即打印,效果以下所示:

  

五、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:

    輸入代碼並執行:

   

相關文章
相關標籤/搜索