ipython是一個python的交互式shell,比默認的python shell好用得多,支持變量自動補全,自動縮進,支持bash shell命令,內置了許多頗有用的功能和函數。學習ipython將會讓咱們以一種更高的效率來使用python。同時它也是利用Python進行科學計算和交互可視化的一個最佳的平臺。python
1.一個強大的python交互式shell
2.供Jupyter notebooks使用的一個Jupyter內核(IPython notebook)web
1.運行ipython控制檯
2.使用ipython做爲系統shell
3.使用歷史輸入(history)
4.Tab補全
5.使用%run命令運行腳本
6.使用%timeit命令快速測量時間
7.使用%pdb命令快速debug
8.使用pylab進行交互計算
9.使用IPython Notebookshell
ipython支持Python2.7版本或者3.3以上的版本,我用的是windows下的python 3.4版本。windows
安裝ipython很簡單,能夠直接使用pip管理工具便可:數組
pip install ipython
這條命令會自動安裝IPython以及它的各類依賴包瀏覽器
若是咱們也想在notebook中或者在Qt console中使用IPython,咱們還須要安裝Jupyter,以下命令:bash
pip install jupyter
另外咱們還可能須要安裝一些用到的庫:服務器
NumPy高性能多維數組矢量運算庫:函數
pip install numpy
Matplotlib繪圖以及交互式可視化:工具
pip install matplotlib
IPython支持全部python的標準輸入輸出,也就是咱們在IDLE中或者Python shell中能用的,在IPython中都可以使用,惟一的不一樣之處使ipython會使用In [x]和Out [x]表示輸入輸出,並表示出相應的序號。
其實後面咱們會知道,In和Out是兩個保存歷史信息的變量
進入IPython也很是簡單,直接win + R打開運行,而後輸入ipython便可進入IPython shell交互框;
或者輸入
除此以外,ipython支持一些更高級的功能。
在shell中輸入表達式時,只要按下Tab鍵,當前命名空間中任何與輸入的字符串相匹配的變量(對象或者函數等)就會被找出來:
這時能夠經過鍵盤的向下翻頁鍵找到本身須要的對象。
在變量的前面或者後面加上一個問號?,就能夠將有關該對象的一些通用信息顯示出來,這就叫作對象的內省。
若是對象是一個函數或者實例方法,則它的docstring也會被顯示出來:
定義方法以下:
這時查看該方法的內省信息:
若是使用兩個問號??,那麼還能夠顯示出該方法的源代碼:
另外,咱們可使用通配符字符串查找出全部與該通配符字符串相匹配的名稱,好比咱們查找re模塊下全部的包含find的函數:
在IPython shell中,使用歷史命令能夠簡單地使用上下翻頁鍵便可,另外咱們也可使用hist命令(或者history命令)查看全部的歷史輸入。(正確的作法是使用%hist,在這裏,%hist也是一個魔法命令)
若是在hist命令以後加上-n,即hist -n也能夠顯示出輸入的序號:
在任何的交互會話中,咱們的輸入歷史和輸出歷史都會被保存在In和Out變量中,並被序號進行索引。
另外,_,__,___和_i,_ii,_iii變量保存着最後三個輸出和輸入對象。_n和_in(這裏的n表示具體的數字)變量返回第n個輸出和輸入的歷史命令。好比:
在ipython會話環境中,全部文件均可以經過%run命令當作Python程序來運行,輸入%run 路徑+python文件名稱便可
在一個交互式會話中,咱們可使用%timeit魔法命令快速測量代碼運行時間。相同的命令會在一個循環中屢次執行,屢次運行時長的平均值做爲該命令的最終評估時長。-n 選項能夠控制命令在單詞循環中執行的次數,-r選項控制執行循環的次數。
ipython帶有一個強大的調試器。不管什麼時候控制檯拋出了一個異常,咱們均可以使用%debug魔法命令在異常點啓動調試器。接着你就能調試模式下訪問全部的本地變量和整個棧回溯。使用u和d向上和向下訪問棧,使用q退出調試器。在調試器中輸入?能夠查看全部的可用命令列表。
咱們也可使用%pdb魔法命令來激活IPython調試器,這樣,每當異常拋出時,調試器就會自動運行。
%pylab魔法命令可使Numpy和matplotlib中的科學計算功能生效,這些功能被稱爲基於向量和矩陣的高效操做,交互可視化特性。它可以讓咱們在控制檯進行交互式計算和動態繪圖。
在該示例中,咱們首先定義了一個-10到10的線性空間中的1000個數值的向量,接着咱們繪製了(x,sin(x))圖像,這樣咱們就成功繪製出了sin(x)的函數圖像:
咱們能夠在IPython中直接使用系統shell,並獲取讀取結果做爲一個Python字符串列表。爲了實現這種功能,咱們須要使用感嘆號!做爲shell命令的前綴。好比如今在個人windows系統中,直接在IPython中ping百度:
一個有趣的事情是,在IPython中調用系統shell能夠再次進入一個新的IPython shell中,以下:
固然,通常沒人會這麼幹。
IPython Notebook使用瀏覽器做爲界面,向後臺的IPython服務器發送請求,並顯示結果。在瀏覽器的界面中使用單元(Cell)保存各類信息。Cell有多種類型,須要強調的是,它也支持MarkDown語法,因此能夠有MarkDown格式化文本單元,也能夠有表示代碼的Code單元。
IPython Notebook有一個重要的特色就是:可重複性的互動計算,這意味着咱們能夠重複更改而且執行曾經的輸入記錄。它能夠保存成其餘不少格式,好比Python腳本,HTML,PDF等,因此它能夠記錄咱們的演算過程。不少課程,博客以及書籍都是用Notebook寫的。
若是執行了上文中IPython的安裝過程,IPython Notebook已經算是安裝好了。怎麼測試呢?Win + R打開運行窗口,輸入ipython notebook,若是正確安裝的話,這個命令就會默認在本地8888端口啓動一個web服務,並
自動打開以下頁面:
咱們能夠點擊當前目錄下的Notebook文件進行編輯,也能夠新建Notebook:
編輯Notebook能夠選擇代碼模式和文本編輯模式,也能夠導出各類不一樣格式的文件:
因爲IPython Notebook是基於Web服務模式的,因此咱們能夠在遠程服務器打開IPython服務器,在本地客戶端啓動IPython Web交互界面,這樣能夠很方便地操做遠程數據
在一個輸入框即Cell中使用回車即Enter鍵,表示換行,也就是說一個Cell中能夠輸入多條語句。
一個Cell中的命令能夠由兩種方式運行:
Shift + Enter小格內的全部代碼將會在當前的IPython交互命名空間中運行,運行結果將會當即在輸入框下面的輸出區域顯示,且一個新的輸入框會出現。Ctrl + Enter組合鍵只會顯示運行結果而不會建立新的輸入框咱們也可使用上面的菜單欄和工具欄對Cell進行各類增刪複製粘貼等操做