Module-IPython使用手冊(cè)

Linux-IPython使用手冊(cè)

IPython是python的一個(gè)交互式shell,它比默認(rèn)的“python shell”更方便熄求,支持變量自動(dòng)補(bǔ)全,自動(dòng)縮進(jìn),支持 bash shell 命令贮折,內(nèi)置了許多強(qiáng)大的功能和函數(shù)。

IPython 是基于BSD 開(kāi)源的资盅,并且IPython為交互式計(jì)算提供了一個(gè)豐富的架構(gòu)调榄。

IPython特色

  • 強(qiáng)大的交互式shell
  • 供Jupyter notebooks使用的Jupyter內(nèi)核
  • 交互式的數(shù)據(jù)可視化工具
  • 靈活、可嵌入的解釋器
  • 易于使用呵扛,高性能的并行計(jì)算工具

IPython使用技巧

IPython中 %調(diào)用IPython命令

Tab鍵自動(dòng)補(bǔ)全

在shell中輸入表達(dá)式時(shí)每庆,按下Tab鍵可將當(dāng)前命名空間中任何與已輸入的字符串相匹配的變量(對(duì)象、函數(shù)等)顯示出來(lái)

中斷正在執(zhí)行的代碼

當(dāng)代碼正在執(zhí)行時(shí)今穿,需要終止代碼運(yùn)行缤灵,則只需按下“Ctrl+C”,就會(huì)引發(fā)一個(gè)KeyboardInterrupt蓝晒,除一些特殊的情況以外腮出,絕大部分Python程序會(huì)立即停止執(zhí)行。
鍵盤(pán)中的快捷鍵
使用IPython編碼時(shí)還可使用鍵盤(pán)快捷鍵來(lái)快速完成所需操作芝薇,常用的鍵盤(pán)快捷鍵(IPython環(huán)境下)如下表所示胚嘲。

內(nèi)置命令-記錄 (%logstart)

記錄輸入的命令

In [2]: %logstart
Activating auto-logging. Current session state plus future input saved.
Filename       : ipython_log.py
Mode           : rotate
Output logging : False
Raw input log  : False
Timestamping   : False
State          : active

內(nèi)置命令-執(zhí)行系統(tǒng)命令 (!)

In [6]: !hostname
neo4j.yinsho.com

內(nèi)置命令-內(nèi)省 (?)

當(dāng)某對(duì)象的信息不是很明確時(shí),可以在變量的前面或后面加上問(wèn)號(hào)(洛二?)馋劈,有關(guān)該對(duì)象的一些通用信息就會(huì)顯示出來(lái),如下圖所示晾嘶。

# 查看變量或函數(shù)
In [4]: ?a
Type:        int
String form: 1
Docstring:  
int(x=0) -> int or long
int(x, base=10) -> int or long


# 打印函數(shù)的源碼
In [15]: func??            
Signature: func()
Source:   
def func():
    print("hello world")
File:      /<ipython-input-13-4475a92670e6>
Type:      function

    

內(nèi)置命令-執(zhí)行文件代碼 (%run)

In [29]: !vi test.py

In [30]: !cat test.py
def func1():
    print("hello world")

func1()

In [31]: %run "test.py"
hello world

目錄書(shū)簽系統(tǒng) (%bookmark)

目錄書(shū)簽妓雾,類似于快捷方式

# 定義 local 書(shū)簽
In [37]: %bookmark local /usr/local
# 查看所有書(shū)簽
In [38]: %bookmark -l
Current bookmarks:
local -> /usr/local
# 使用書(shū)簽.
In [39]: cd local
(bookmark:local) -> /usr/local
/usr/local
# 覆蓋之前書(shū)簽
In [41]: %bookmark local /etc/sysconfig

其他命令

  • %paste和%cpaste命令執(zhí)行剪帖板代碼
  • 使用上箭頭或下箭頭可以查看上一條命令或下一條命令的歷史
  • _i48 執(zhí)行第48條命令
  • __ 執(zhí)行前面倒數(shù)第一條命令
  • 輸入與輸出主要是使用 _变擒、_X君珠、_iX,這里的X表示行號(hào)
  • %dhist :打印目錄訪問(wèn)的歷史
  • %env :以dict的形式返回系統(tǒng)的環(huán)境變量

Ipython高級(jí)使用

日志處理娇斑、代碼調(diào)試策添、性能分析、自定義主題

IPython附件

快捷鍵

快捷鍵 作用
Ctrl+P或向上箭頭 后向搜索命令
Ctrl+N或向下箭頭 前向搜索命令
Ctrl+R 按行讀取反向歷史搜索(部分匹配)
Ctrl+Shift+V 從剪切板粘貼文本
Ctrl+A 將光標(biāo)移動(dòng)到行首
Ctrl+E 將光標(biāo)移動(dòng)到行尾
Ctrl+K 刪除從光標(biāo)開(kāi)始至行尾的文本
Ctrl+U 清除從光標(biāo)開(kāi)始至行首的文本
Ctrl+F 將光標(biāo)向前移動(dòng)一個(gè)字符
Ctrl+B 將光標(biāo)向后移動(dòng)一個(gè)字符
Ctrl+L 清屏

魔術(shù)命令

%quickref                   顯示ipython的快速參考
%magic                      顯示所有的魔術(shù)命令的詳細(xì)文檔
%debug                      從最新的異常跟蹤的底部進(jìn)入交互式調(diào)試器
%hist                       打印命令的輸入(可選輸出)歷史
%pdb                        在異常發(fā)生后自動(dòng)進(jìn)入調(diào)試器
%paste                      執(zhí)行剪貼板中的python代碼
%cpaste                     打開(kāi)一個(gè)特殊提示符以便手工粘貼待執(zhí)行的python代碼
%reset                      刪除interactive命名空間中的全部變量/名稱
%page OBJECT                通過(guò)分頁(yè)器打印輸出object
%run script.py              在ipython中執(zhí)行一個(gè)python腳本文件
%prun statement             通過(guò)cprofile執(zhí)行statement,并打印分析器的輸出結(jié)果
%time statement             報(bào)告statement的執(zhí)行時(shí)間
%timeit statement           多次執(zhí)行statement以計(jì)算系統(tǒng)平均執(zhí)行時(shí)間.對(duì)那么執(zhí)行時(shí)間非常小的代碼很有用
%who,%who_id,%whos          顯示interactive命名空間中定義的變量,信息級(jí)別/冗余度可變
%xdel variable              刪除variable,并嘗試清除其在ipython中的對(duì)象上的一切引用

調(diào)試器命令 (%debug)

debug調(diào)試器樣例

In [11]: %debug  
> <ipython-input-10-0ee88489e9f0>(1)<module>()
----> 1 func%debug
ipdb> 

設(shè)置斷點(diǎn)單步調(diào)度 
%run -d script.py

s 進(jìn)入腳本 毫缆, 
b 13 # 在13行設(shè)置斷點(diǎn) 
c # continue till touch the break point 
n # 執(zhí)行下一行唯竹。 
如果有exception 報(bào)出:throws_an_exception , 
ipdb> s # 單步進(jìn)入 exception 那行. 
ipdb> !a #在變量a 前加 ! 查看 變量?jī)?nèi)容

pdb 是 python 自帶的一個(gè)包,為 python 程序提供了一種交互的源代碼調(diào)試功能苦丁,
主要特性包括設(shè)置斷點(diǎn)浸颓、單步調(diào)試、進(jìn)入函數(shù)調(diào)試、查看當(dāng)前代碼产上、查看棧片段棵磷、動(dòng)態(tài)改變變量的值等。pdb 提供了一些常用的調(diào)試命令

pdb 調(diào)試器命令列表

h(help)                 顯示命令列表
help command            顯示command的文檔
c(continue)             恢復(fù)程序的執(zhí)行
q(quit)                 退出調(diào)試器,不再執(zhí)行任何代碼
b(break) n              在當(dāng)前文件的第n行設(shè)置一個(gè)斷點(diǎn)
b path/to/file.py:n     在指定文件的第n行設(shè)置一個(gè)斷點(diǎn)
s(step)                 單步進(jìn)入函數(shù)調(diào)用
n(next)                 執(zhí)行當(dāng)前行,并前進(jìn)到當(dāng)前級(jí)別的下一行
u(up)/d(down)           在函數(shù)調(diào)用棧中向上或向下移動(dòng)
a(args)                 顯示當(dāng)前函數(shù)的參數(shù)
debug statement         在新的遞歸調(diào)試器中調(diào)用語(yǔ)句statement
l(list) statement       顯示當(dāng)前行,以及當(dāng)前棧級(jí)別上的上下文參考代碼
w(where)                打印當(dāng)前位置的完整棧跟蹤(包括上下文參考代碼)

資源

IPython用法詳解: https://www.cnblogs.com/renpingsheng/p/7759797.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末晋涣,一起剝皮案震驚了整個(gè)濱河市仪媒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谢鹊,老刑警劉巖算吩,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異佃扼,居然都是意外死亡偎巢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)兼耀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)压昼,“玉大人,你說(shuō)我怎么就攤上這事翠订〕惨簦” “怎么了遵倦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵尽超,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我梧躺,道長(zhǎng)似谁,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任掠哥,我火速辦了婚禮巩踏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘续搀。我一直安慰自己塞琼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布禁舷。 她就那樣靜靜地躺著彪杉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪牵咙。 梳的紋絲不亂的頭發(fā)上派近,一...
    開(kāi)封第一講書(shū)人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音洁桌,去河邊找鬼渴丸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谱轨。 我是一名探鬼主播戒幔,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼土童!你這毒婦竟也來(lái)了溪食?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤娜扇,失蹤者是張志新(化名)和其女友劉穎错沃,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體雀瓢,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡枢析,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了刃麸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片醒叁。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡判族,死狀恐怖椅挣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情秩伞,我是刑警寧澤吁伺,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布饮睬,位于F島的核電站,受9級(jí)特大地震影響篮奄,放射性物質(zhì)發(fā)生泄漏捆愁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一窟却、第九天 我趴在偏房一處隱蔽的房頂上張望昼丑。 院中可真熱鬧,春花似錦夸赫、人聲如沸菩帝。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)呼奢。三九已至,卻和暖如春滓彰,著一層夾襖步出監(jiān)牢的瞬間控妻,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工揭绑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弓候,地道東北人郎哭。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像菇存,于是被迫代替她去往敵國(guó)和親夸研。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容