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:
輸入代碼並執行: