這是原書第三章內(nèi)容總結(jié)铃在,第一次寫文章,有什么不對的拢驾,還請大家指出來哈~
終于寫完啦~
Ipython 基礎(chǔ)
基本命令
## 以下用>>> 表示命令行輸入
>>> ipython # 啟動方式一
>>> ipython --pylab #啟動方式二(用于繪圖)
>>> b = [1,2,3] #舉例
>>> b? # ?(內(nèi)省)將對象的通用信息顯示出來
# 還可用于函數(shù)奖磁,顯示函數(shù)源代碼
Type: list
String form: [1, 2, 3]
Length: 3
Docstring:
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
魔術(shù)命令
# 定義腳本 ipython_test.py
# def f(x,y,z)
# return (x+y)/z
# a = 5
# b = 6
# c = 7.5
# result = f(a,b,c)
# %run 將腳本文件當作Python程序來運行
# 之后便可在shell中訪問腳本文件中全部變量
>>> %run -i ipython_test.py
## 執(zhí)行剪貼板的代碼
>>> %paste #回車后,直接執(zhí)行已經(jīng)在剪貼板中的代碼
>>> %cpaste #回車后繁疤,將代碼復(fù)制于下方咖为,并輸入“--”結(jié)尾
# 以'%'為前綴的命令
>>> import numpy as np #import 用來加入python庫
>>> from numpy.random import randn
>>> a = np.random.randn(100,100) # 以隨機值填充100*100的矩陣
>>> %timeit np.dot(a,a) # dot 矩陣乘法
# %timeit 檢測python語句執(zhí)行時間
常用的Ipython魔術(shù)命令
命令 | 解釋 |
---|---|
%quickref | 顯示 IPython 快速參考 |
%debug | 從最新的異常跟蹤的底部進入交互式調(diào)試器 |
%hist | 打印命令的輸入(可選輸入)歷史 |
%pdb | 在異常發(fā)生后自動進入調(diào)試器 |
%reset | 刪除 interactive 命名空間中的全部變量 |
%run script.py | 執(zhí)行 script.py |
%prun statement | 通過 cProfile 執(zhí)行對 statement的逐行性能分析 |
%time statement | 測試 statement 的執(zhí)行時間 |
%timeit statement | 多次測試 statement 的執(zhí)行時間并計算平均值 |
%who、%who_ls稠腊、%whos | 顯示 interactive 命名空間中定義的變量躁染,信息級別/冗余度可變 |
%xdel variable | 刪除 variable ,并嘗試清除其在 IPython 中的對象上的一切引用 |
!cmd | 在系統(tǒng) shell 執(zhí)行cmd |
output=!cmd args | 執(zhí)行cmd 并賦值 |
%bookmark | 使用 IPython 的目錄書簽系統(tǒng) |
%cd <i>direcrory</i> | 切換工作目錄 |
%logstart | 記錄整個會話,包括之前的命令 |
%dhist | 打印目錄訪問歷史 |
%pwd | 返回當前工作目錄(字符串形式) |
%env | 返回當前系統(tǒng)變量(以字典形式) |
對魔術(shù)命令不熟悉的話可以通過 %magic 查看詳細文檔架忌;對某一個命令不熟悉的話吞彤,可以通過 %cmd? 內(nèi)省機制查看特定文檔。值得一提的是,IPython 中使用 del 命令無法刪除所有的變量引用饰恕,因此垃圾回收機制也無法啟用挠羔,所以有些時候你會需要使用 %xdel 或者 %reset。
Ipython 主要操作快捷鍵
<Tab> 自動匹配當前命名空間函數(shù)等
Ctrl-C 中止當前正在執(zhí)行的代碼
Ctrl-A 將光標移動到行首
Ctrl-E 將光標移動到行尾
Ctrl-K 刪除從光標開始至行尾的文本
Ctrl-U 刪除從光標開始至行首的文本
Ctrl-L 清屏
(I)Python調(diào)試器命令
命令 | 解釋 |
---|---|
h(elp) | 顯示命令列表 |
help <i>command</i> | 顯示 <i>command</i> 的文檔 |
c(ontinue) | 恢復(fù)程序的執(zhí)行 |
q(uit) | 退出調(diào)試器埋嵌,不再執(zhí)行任何代碼 |
b(reak) <i>number</i> | 在當前文件的第<i>number</i> 行設(shè)置一個斷點 |
b path/to/ <i>file.py:number</i> | 在指定文件的第<i>number</i> 行設(shè)置一個斷點 |
s(tep) | 單步進入函數(shù)調(diào)用 |
n(ext) | 執(zhí)行當前行褥赊,并前進到當前級別的下一行 |
u(p)/d(own) | 在函數(shù)調(diào)用棧中向上或向下移動 |
a(rgs) | 顯示當前函數(shù)的參數(shù) |
debug <i>statement</i> | 在新的(遞歸)調(diào)試器中調(diào)用語句<i>statement</i> |
l(ist) <i>statement</i> | 顯示當前行,以及當前棧級別上的上下文參考代碼 |
w(here) | 打印當前位置的完整棧跟蹤(包括上下文參考代碼) |
今天的內(nèi)容就這么多莉恼,歡迎交流,共同進步哈~