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