一起用ipython
安裝
安裝python2版本的軟件包就用命令
pip install ipython
安裝python3版本對應的軟件包就用命令
pip3 install ipython
?
進入了ipython,ipython會提示您鍵入下面四個命令之一去試著使用ipython:
命令名 說明
? ipython特性的介紹和概述 %quickref 一份手冊,包含了所有的命令 help python的幫助系統 object? 關于object的詳細信息,如果鍵入object??會更詳細首先是推薦您看一下quickref的。您注意到了,這個命令以%開頭。所有以%開頭的方法,都是所謂的魔術方法(Magic function),
也就是ipython內置的一些方法。
需要注意的是,魔術方法有%和%%之分,比如%timeit和%%timeit。這玩意在ipython中有專門的叫法,
前者叫line magic后者叫cell magic。
顧名思義,前者是專門針對一行的命令,后者針對多行的命令(這是notebook中的術語,關于notebook請參閱最后),如是而已。
所有的魔術方法都可以查看源碼,仔細閱讀的話,對自己寫代碼也很有裨益,具體方法是在魔術方法后面加??,譬如%timeit??。
代碼是經過高亮和格式化的,
應該很容易閱讀才是。如果您有著奇妙的好奇心的話,想必剛才也嘗試過%timeit?。區別是,這次沒有源碼出現對吧。
但是其他信息,比如type什么的指導性內容會顯示出來。
Tab鍵自動完成
在shell中輸入表達式時,只要按下Tab鍵,當前命令控件中任何與輸入的字符串相匹配的變量(對象、函數等)就會被找出來。
ps.之前我發現我的ipython沒有Tab鍵自動補全功能,tab鍵的功能是縮進。最后 pip install pyreadline即可解決。
下面這個例子,輸入b.后按下<tab>鍵即可得到下圖的結果。
內省
在變量的前面或后面加上一個問號(?)就可以將有關該對象的一些通用信息顯示出來。這就叫做對象的內省。
如果對象是一個函數或實例方法,則其docstring也會被現實出來。
使用??還將顯示出該函數的源代碼。
一些字符串配以通配符(*)即可顯示出所有與該通配符表達式相匹配的名稱。
?
中斷正在執行的代碼
按下Ctrl-C就會引發一個KeyboardInterrupt。除了一些非常特殊的情況下,絕大部分python程序都會立即停止執行
?
執行剪貼板中的代碼
書上說使用ctrl+shift+v將剪貼板的代碼片段粘貼出來,然而windows系統似乎不可行,所以鼠標右鍵粘貼好了。
%paste可以承載剪貼板中的一切文本,并在shell中以整體形式執行。
%cpaste跟%paste差不多,只不過它多出了一個用于粘貼代碼的特殊提示符而已。如果發現粘貼的代碼有錯,只需要按下ctrl+c即可終止%cpaste提示如。
?
鍵盤快捷鍵
在此粘貼給大家作為備忘。
魔術命令
魔術關鍵字以%開頭,如果automagic打開了,則不用輸入%,否則需要,使用automagic可以切換狀態
可以使用%magic參看所有魔術方法
命令?說明
%quickref?顯示IPython的快速參考
%magic?顯示所有魔術命令的詳細文檔
%debug?從最新的異常跟蹤的底部進入交互式調試器
%hist?打印命令的輸入(可選輸出)歷史
%pdb?在異常發生后自動進入調試器
%paste?執行剪貼板中的Python代碼
%cpaste?打開一個特殊提示符以便手工粘貼待執行的Python代碼
%reset?刪除interactive命名空間中的全部變量/名稱
%page OBJECT?通過分頁器打印輸出OBJECT
%run script.py?在IPython中執行一個Python腳本文件
%prun statement?通過cProfile執行statement,并打印分析器的輸出結果
%time statement?報告statement的執行時間
%timeit statement?多次執行statement以計算系綜平均執行時間。對那些執行時??間非常小的代碼很有用
%who、%who_ls、%whos?顯示interactive命名空間中定義的變量,信息級別/冗余度可變
%xdel variable?刪除variable,并嘗試清除其在IPython中的對象上的一切引用
env 顯示環境變量
ed或edit 編輯一個文件并執行
ed -x filename 編輯文件不執行
edit 3:10 編輯3:10行的指令并執行
hist 顯示歷史紀錄,可以用-n增加行號
hist 3:10 顯示3-10行的歷史紀錄
bg function 把function函數放到后臺執行
pwd 當前目錄
pycat filename 語法高亮顯示一個文件
macro name 1:10 把1:10行的代碼設為name宏
save filename 1:10 把1:10行代碼保存到文件中
time statement 計算一段代碼執行時間
timeit statement 自動選擇重復和循環次數計算一段代碼執行時間
run filename 執行一個文件,如果希望防止執行的,需要增加if name == “main“:
autoindent 如果啟用,粘貼的時候會自動縮進代碼
reset 重置所有變量
Bash命令
cls 清除屏幕
colors
基于Qt的富GUI控制臺
Ipython團隊開發了一個基于Qt框架(其目的是為終端應用程序提供諸如內嵌圖片、多行編輯、語法高亮之類的富文本剪輯功能)的GUI控制臺。
使用
ipython qtconsole --pylab=inline來啟動的話可為其添加繪圖功能。
ps.這一步剛開始無法執行,我的解決方法是:
pip install qtconsole,就可以運行了- -..
?
%run命令
在ipython會話環境中,所有文件都可以通過%run命令當做Python程序來運行。
輸入 %run 路徑+python文件名稱即可。
ipython一般的使用,通常只是為了測試一行或者幾行代碼是否能夠執行。究其原因,還是因為命令行中書寫長代碼相較于在文件中寫代碼并不方便,一方面是格式,另一方面是在命令行中寫代碼,一旦中間代碼寫錯,修改起來還是很麻煩的。于是我們不得不一次次退出ipython,去python xxx.py執行?;蛘遲mux開兩個窗口來測試。
但是其實ipython已經提供了很方便的機制用來執行一個腳本,就是%run命令,%run可以簡化為run。
使用起來類似于熟悉的python test.py,使用run test.py就好。run命令還可以附加選項,常用的有-t選項,這個會在腳本執行完后,打印出執行的cpu timings。如果指定了-t選項,后面可以跟一個-Nx,x代表一個數字。表示重復執行x次。
另外比較好用的是-d選項,這個會在pdb中運行腳本。后跟-bxx打斷點。個人沒有什么python調試的經驗,您有興趣可以親自嘗試。
還有一個-p選項,這個選項會開啟python profiler,從而打印出詳細的執行時間、函數調用等等信息供優化參考。
?
%timeit
這個命令用來測試一條命令執行的時間,一般而且,會重復100次運行這個命令,然后取出最好的3個結果取平均值。
試著執行下面的命令:
In[1]: %timeit [x*x for x in range(100000)]
同樣,可以指定選項。
-n指定重復次數,默認100
-r是取多少個結果的平均值,默認是3
順帶一提,%timeit測出來的結果遠比真實運行更快,原因是,timeit執行中,會暫時關閉掉垃圾回收(gc)。
shell中使用python變量
其實這個不算是魔術方法啦,只是單獨列出來也不太合適,所以也就寫在這里。
請看下面這段代碼:
folder = 'data' mkdir $folder cd %folder注意到了么,mkdir是一個魔術方法,它是%mkdir的一個鏈接,%mkdir事實上就是shell中的mkdir方法。而folder是一個python變量。但是,確實,shell下的命令訪問了python的變量,只是在變量名前面加了$。如果您熟悉shell腳本的話,這種方式應該很親切才對。
?
%bookmark
這個方法通常用來記憶路徑,譬如說,您每次都需要cd進一個叫做github/miko/loli/shoujo的目錄,這時候,您可以對這個路徑做一個書簽,%bookmark shoujo github/miko/loli/shoujo,這樣以后就可以直接cd shoujo這樣。
順便,如果沒有指定路徑,會默認使用當前路徑。
?
%alias
正如名字揭示的,這個方法用來指定別名。不過,ipython的%alias還能進行參數傳遞。
看看下面這段:
In [1]: %alias largest ls -1sSh | grep %s In [2]: largest circles很容易懂不是么?%alias后面跟的那個參數就是別名,然后可以通過%s來指定一個參數,使用時傳入。
?
%store
默認的,別名只會存在于本次會話中,如果希望下次還能使用這個別名,使用%store方法存下來吧。%store latest
另外,沒保存也不要緊,%store -r會恢復上次會話的別名。
?
%hist
ipython中history會保存所有會話中的記錄,所以隔一年什么的記錄就會相當多啦。
雖然我知道你們都會用up,down來尋找歷史記錄……恩,試試ctrl+r,有驚喜。
另外,類似于hist 3-7什么的,好像也不用我解釋就是了。
-g選項和grep類似,可以查找些東西出來,然后-n顯示行號,-f保存歷史記錄到文件中去,-p把行號顯示為n:>>>,-n把輸入的結果顯示出來
轉載于:https://www.cnblogs.com/awakenedy/p/9259387.html
總結
以上是生活随笔為你收集整理的一起用ipython的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: yii 添加数据时 有默认值 就赋值默认
- 下一篇: python3-开发进阶-仿博客园项目s