Module-IPython使用手冊

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章