Linux-IPython使用手冊
IPython是python的一個交互式shell,它比默認的“python shell”更方便,支持變量自動補全,自動縮進,支持 bash shell 命令,內置了許多強大的功能和函數。
IPython 是基於BSD 開源的,並且IPython爲交互式計算提供了一個豐富的架構。
IPython特色
- 強大的交互式shell
- 供Jupyter notebooks使用的Jupyter內核
- 交互式的數據可視化工具
- 靈活、可嵌入的解釋器
- 易於使用,高性能的並行計算工具
IPython使用技巧
IPython中 %
調用IPython命令
Tab鍵自動補全
在shell中輸入表達式時,按下Tab鍵可將當前命名空間中任何與已輸入的字符串相匹配的變量(對象、函數等)顯示出來
中斷正在執行的代碼
當代碼正在執行時,需要終止代碼運行,則只需按下“Ctrl+C”,就會引發一個KeyboardInterrupt,除一些特殊的情況以外,絕大部分Python程序會立即停止執行。
鍵盤中的快捷鍵
使用IPython編碼時還可使用鍵盤快捷鍵來快速完成所需操作,常用的鍵盤快捷鍵(IPython環境下)如下表所示。
內置命令-記錄 (%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
內置命令-執行系統命令 (!)
In [6]: !hostname
neo4j.yinsho.com
內置命令-內省 (?)
當某對象的信息不是很明確時,可以在變量的前面或後面加上問號(?),有關該對象的一些通用信息就會顯示出來,如下圖所示。
# 查看變量或函數
In [4]: ?a
Type: int
String form: 1
Docstring:
int(x=0) -> int or long
int(x, base=10) -> int or long
# 打印函數的源碼
In [15]: func??
Signature: func()
Source:
def func():
print("hello world")
File: /<ipython-input-13-4475a92670e6>
Type: function
內置命令-執行文件代碼 (%run)
In [29]: !vi test.py
In [30]: !cat test.py
def func1():
print("hello world")
func1()
In [31]: %run "test.py"
hello world
目錄書籤系統 (%bookmark)
目錄書籤,類似於快捷方式
# 定義 local 書籤
In [37]: %bookmark local /usr/local
# 查看所有書籤
In [38]: %bookmark -l
Current bookmarks:
local -> /usr/local
# 使用書籤.
In [39]: cd local
(bookmark:local) -> /usr/local
/usr/local
# 覆蓋之前書籤
In [41]: %bookmark local /etc/sysconfig
其他命令
- %paste和%cpaste命令執行剪帖板代碼
- 使用上箭頭或下箭頭可以查看上一條命令或下一條命令的歷史
- _i48 執行第48條命令
- __ 執行前面倒數第一條命令
- 輸入與輸出主要是使用 _、__、_X、_iX,這裏的X表示行號
- %dhist :打印目錄訪問的歷史
- %env :以dict的形式返回系統的環境變量
Ipython高級使用
日誌處理、代碼調試、性能分析、自定義主題
IPython附件
快捷鍵
快捷鍵 | 作用 |
---|---|
Ctrl+P或向上箭頭 | 後向搜索命令 |
Ctrl+N或向下箭頭 | 前向搜索命令 |
Ctrl+R | 按行讀取反向歷史搜索(部分匹配) |
Ctrl+Shift+V | 從剪切板粘貼文本 |
Ctrl+A | 將光標移動到行首 |
Ctrl+E | 將光標移動到行尾 |
Ctrl+K | 刪除從光標開始至行尾的文本 |
Ctrl+U | 清除從光標開始至行首的文本 |
Ctrl+F | 將光標向前移動一個字符 |
Ctrl+B | 將光標向後移動一個字符 |
Ctrl+L | 清屏 |
魔術命令
%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_id,%whos 顯示interactive命名空間中定義的變量,信息級別/冗餘度可變
%xdel variable 刪除variable,並嘗試清除其在ipython中的對象上的一切引用
調試器命令 (%debug)
debug調試器樣例
In [11]: %debug
> <ipython-input-10-0ee88489e9f0>(1)<module>()
----> 1 func%debug
ipdb>
設置斷點單步調度
%run -d script.py
s 進入腳本 ,
b 13 # 在13行設置斷點
c # continue till touch the break point
n # 執行下一行。
如果有exception 報出:throws_an_exception ,
ipdb> s # 單步進入 exception 那行.
ipdb> !a #在變量a 前加 ! 查看 變量內容
pdb 是 python 自帶的一個包,爲 python 程序提供了一種交互的源代碼調試功能,
主要特性包括設置斷點、單步調試、進入函數調試、查看當前代碼、查看棧片段、動態改變變量的值等。pdb 提供了一些常用的調試命令
pdb 調試器命令列表
h(help) 顯示命令列表
help command 顯示command的文檔
c(continue) 恢復程序的執行
q(quit) 退出調試器,不再執行任何代碼
b(break) n 在當前文件的第n行設置一個斷點
b path/to/file.py:n 在指定文件的第n行設置一個斷點
s(step) 單步進入函數調用
n(next) 執行當前行,並前進到當前級別的下一行
u(up)/d(down) 在函數調用棧中向上或向下移動
a(args) 顯示當前函數的參數
debug statement 在新的遞歸調試器中調用語句statement
l(list) statement 顯示當前行,以及當前棧級別上的上下文參考代碼
w(where) 打印當前位置的完整棧跟蹤(包括上下文參考代碼)
資源
IPython用法詳解: https://www.cnblogs.com/renpingsheng/p/7759797.html