# Ipython常用功能 reference : Python Data Science Handbook ## Ipython常用快捷鍵 Ctrl-a: 把游標移至本列起始位置 Ctrl-e: 把游標移至本列最後位置 Ctrl-k: 把游標後面全部文字剪下 Ctrl-y: 把之前剪下貼上 Ctrl-d: 把游標後面單個刪除(類似delete) Ctrl-p: 顯示上次輸入內容(類似直接按鍵盤往上的鍵) Ctrl-c: 中斷目前執行的python Ctrl-d: 離開ipython 多練習就會記住這些方便的快捷鍵。 ## Ipython Magic 以下程式沒有特別使用In[ ],Out[ ],只有簡單使用>>> ```python= >>> print(In) # 先前輸入的 >>> print(Out) # 先前輸出的 >>> print(Out[2]) # 顯示Out[2]輸出內容,也可以用print(_2),但只能使用在Out(2) >>> 3; # 抑制輸出,會找不到輸出內容 ``` Magic還可以用 ```python= >>> len? # 用來查詢函式功能 ``` ### 程式區塊剪下貼上發生錯誤 ```python= >>> def return_num(x): ... return x >>> def return_num(x): # 貼上後 ... ... return x >>> >>> >>> %paste # 用於多個程式輸入,並完成執行 >>> %cpaste # 相較paste貼上後還可以做修改 >>> >>> %run "xxx.py" # 用以執行以已好程式,建議寫絕對路徑,而且需要雙引號 ``` ### 設定例外內容 %xmode函式: 顯示例外內容,方便除錯 ```python= >>> %xmode plain >>> %xmode context #預設 >>> %xmode verbose ``` palin: 顯示內容最少 context: 比palin多顯示函式內部指令 verbose: 比context多顯示變數傳遞內容 ### Ipython debug 會進入debug模式,原本輸入>>>換成ipdb>。 ```python= >>> %debug # 需上行有程式發生例外 >>> %debug func1(a, b) # 指定哪個函式 >>> %run -d "xxx.py" # -d: debug,指定要處理的檔案 ``` #### 更多命令表 ```python= ipdb> h Documented commands (type help <topic>): ======================================== EOF cl disable interact next psource rv unt a clear display j p q s until alias commands down jump pdef quit source up args condition enable l pdoc r step w b cont exit list pfile restart tbreak whatis break continue h ll pinfo return u where bt d help longlist pinfo2 retval unalias c debug ignore n pp run undisplay Miscellaneous help topics: ========================== exec pdb ipdb> ``` ## 測量運行時間 在測量時間有time和timeit,time是指運行一次,而timeit是重複運行。有些程式是做資料運算,當第一次資料運算完,第二次就會快很多,用timeit會有判斷時間上的不正確。 ```python= >>> %time L = [n ** 2 for n in range(1000000)] # 單行使用 >>> %%time # 多行使用 ...: L = [] ...: for n in range(100): ...: L = n ** 2 >>> %timeit L = [n ** 2 for n in range(1000000)]