不一定非得使用Jupyter Notebook,試試ipython命令行
安裝 ipython
我只試過Windows 10環境下的。
1.安裝python安裝包之後,應該就有ipython了。
2.安裝anaconda,這個做機器學習或數據分析要是需要的,這個裝完之後,也會有ipython。(建議使用anaconda,國內鏡像地址:https://mirrors.tuna.tsinghua.edu.cn/)
啟動ipython
1.命令行輸入ipython即可啟動。
2.或者找一下快捷方式,也可以啟動。
幫助?
1.help,python內置了help方法,相信大家都會這個。例如:help(len),然後就會顯示len方法的幫助文檔:
2.?,ipython獨有的提供了一個快捷字符?,它也可以訪問幫助文檔,例如:
查看源碼??
使用?? 來查看python的源碼:
但是,如果源碼不適用python寫的(有些內置的方法使用C等語言寫的),就會出現如下效果:
自動完成 Tab
Tab鍵在ipython中輸入時可提供自動完成或瀏覽功能。
有時候優點像python內置的dir()函數,但強大得多。
這是L.後邊點擊Tab的效果。下面是再輸入一個字母c之後的智能提示的效果:
提示私有屬性
使用Tab默認只顯示public和external屬性/方法,如果想顯示私有屬性,那麽按約定,你要先輸入一個下劃線_。
import的時候也可以使用Tab
通配符*
有時候tab不夠用,那就使用通配符 * 。
例如:顯示以Error結尾的對象:
註意後邊還有個?。
*可以匹配任何字符串包括空字符串。
另一個例子,包含xxx字符串:
快捷鍵
導航類:
Ctrl+a,移動光標到行首
Ctrl+e,移動光標到行尾
Ctrl+b(或←),向左移動一個字符
Ctrl+f(或→),向右移動一個字符
輸入類:
Backspace:刪除行中前一個字符
Ctrl+d,刪除行中下一個字符
Ctrl+k,從光標位置剪切到行尾。
Ctrl+u,從行首剪切到光標位置。
Ctrl+y,粘貼之前剪切的文字。
Ctrl+t,調換前兩個字符的位置。
命令歷史類:
Ctrl+p,前一個命令,和↑好像一樣。
Ctrl+n,後一個命令,和↓好像一樣。
Ctrl+r,倒序搜索。
其中Ctrl+r是挺有用的,例如:
按Ctrl+r後,輸入a,就會倒序搜索之前的輸入。
如果有相同的歷史搜索結果的話,你可以點擊多次Ctrl+r繼續往前翻。
其它快捷鍵:
Ctrl+l,清屏
Ctrl+c,中斷當前python命令
Ctrl+d,退出ipython
魔法命令
復制多行代碼 %paste,%cpaste。
在ipython命令行中使用Ctrl+c復制多行代碼經常會出現問題(縮進等問題),使用%paste命令,解決了這個問題。
輸入%paste,然後回車,就會把你剪切盤裏面的內容完美的復制進來並執行。
%cpaste,和%paste類似,但是它會提供一個交互界面,以便輸入多個代碼塊。
執行外部代碼 %run
直接舉例:
為代碼執行計時:%timeit,%%timeit
對單行代碼的執行計時:%timeit:
對多行代碼執行計時:%%timeit:
魔法命令的幫助文檔:
使用%maigc,可以查看所有魔法命令及其文檔。
使用%lsmagic,可以列出所有的魔法命令。
輸入輸出歷史
使用ipython shell,您一定對左邊這些in,out特別熟悉。
但是,它們不是裝飾品,它們倆是變量。
In和Out是兩個變量,並且隨著命令的輸入,實時更新。
其中:
In是一個list,而Out是一個Dictionary。
所以可以這樣查看具體的In和Out:
其中需要註意的是,並不是所有的In都有輸出,例如[37]。
下劃線和前一個輸出
使用一個下劃線 _ 來獲取前一個輸出結果,它是個變量,實時更新的。
使用兩個下劃線 __ 可以獲取倒數第二個輸出,使用三個下劃線 ___ 獲取倒數第三個輸出。(沒有輸出的命令行不計入在內)
最多也只能使用三個下劃線,超過三的話可以使用Out[X]或者_X來獲取之前的輸出:其中X是命令行號,不是往前數的個數。
抑制輸出
有時候在輸入命令後,我們不想讓其輸出結果,那就這樣,在行的最後邊加一個 ; 分號。
這樣的話,第76行也就沒有輸出了,Out[76]就不存在了。
相關的魔法命令:%history
使用%history可以一起獲取前面多個命令:
註意其參數-n後邊跟的是 命令行號的區間。
Shell commands和IPython交互
你可以在ipython中使用任何shell commands(暫時叫系統命令行的命令吧),只要在前邊加一個嘆號 ! 。
(其實,對於常見的shell命令,直接輸入就會好用。。因為automagic屬性默認是on的,詳見後邊)
從Shell向ipython傳值
直接寫個賦值表達式就可以,等號的右邊是Shell命令:
註意:傳進來的值的類型不是list,而是:IPython.utils.text.SList。
從ipython向Shell傳值:
使用{變量名}的形式賦值:
註意:不可以使用 !cd 這個文件系統導航命令。
Shell相關的魔法命令
如果想要在ipython中進行系統導航,那麽應該使用%cd這個魔法命令。
automagic
如果把automagic屬性設置為on,那麽魔法命令前邊就不需要%這個符號了。
默認automagic是on的,你可以輸入automagic,那麽它就會在on/off之間切換。
因為魔法命令包含了很多常見的shell命令,例如%cd,%pwd,%ls等等等等。所以默認情況下直接輸入常見的shell命令就會好用。
Exception顯示的詳細程度
如果解釋器擊中異常的時候,可以在traceback中查看異常信息。
使用%xmode可以控制異常信息的詳細程度:
%xmode 只有一個參數,後選項從簡到繁是 Plain,Context,Verbose。我的電腦默認是Verbose。
Debugging
%xdebug 魔法命令。
在發生異常後,輸入%xdebug,會進入debug模式ipdb。在這裏輸入變量可以查看變量的值,也可以執行python命令!
如果你想在發生任何異常的時候就進入debug模式,那麽可以把pdb設置為on:
此外,如果你想在運行外部腳本的時候直接進入debug模式,那麽就應該輸入這個命令:
%run -d。
部分Debug命令(ipdb模式下):
l(ist),顯示在文件中的當前位置。
h(elp),幫助
q(uit),退出Debugger和程序。
c(ontinue),退出Debugger,繼續執行程序。
n(ext),執行程序的下一步
<enter>,重復上一個命令
p(rint),打印變量
s(tep),進入子程序
r(eturn),從子程序跳出
分析(Profiling)和計時模式
%time,適用於對單個長時間運行的表達式的程序計時。
%timeit,適用於對循環類的單行程序計時,它更準確。
註意:%timeit的結果通常比%time更快。
%prun,使用分析器運行代碼
此外,還可以安裝第三方分析工具,例如%lprun(逐行分析),%memit(單個表達式內存分析),%mprun(逐行內存分析)等等。
下一篇文章,寫一下Numpy的使用技巧
Tags: ipython 使用 一個 輸入 python 安裝
文章來源: