50個關於IPython的奇技淫巧

2020-08-27 Python課堂

什麼是IPython?可能很多人已經在用,卻不知道它到底是什麼。 根據維基百科的解釋:

IPython是一種基於Python的交互式解釋器,提供了強大的編輯和交互功能。

IPython擁有:

  1. 滿足你各種需求的交互式shell
  2. 火爆數據科學社區的Jupyter內核(供Jupyter Notebook使用)
  3. 對交互式數據可視化和GUI工具的完美支持
  4. 簡單易用的高性能並行計算工具

IPython中的『I』即代表交互的意思,所以IPython提供了豐富的工具,能更好地與python進行交互。 大家經常遇到的魔法命令,就是IPython的眾多功能之一。 本文梳理IPython的50個用法,供Python愛好者參考。

註:前面說過IPython提供了jupyter內核,所以Jupyter Notebook是一個基於瀏覽器的IPython shell,支持IPython的所有功能,以下內容均在Jupyter Notebook環境中測試。

1. ?列印IPython簡介

在IPython中直接輸入?,可以列印出IPython的功能介紹

2. object ?內省功能

在變量後面加上?,可以列印出該變量的詳細信息。 例如圖中一個列表對象,列印出該對象的類型、長度等信息。

3. object ??內省功能

??和?功能相似,不過??還可以查看函數或模塊對象的原始碼。

4. history歷史命令

在IPython中,執行history或hist命令能夠查看歷史輸入。

5. tab自動補全

IPython支持tab鍵自動補全。

6. ! shell_command執行shell命令

shell (windows裡叫作cmd)表示使用文本與計算機進行交互的方式,在IPython中,shell命令前加上感嘆號!(英文輸入法)就可以直接執行。 如圖使用ping檢測百度網址。

7.魔法命令%和%%區別

魔法命令分為兩種,一種是line magics,另外一種cell magics。 Line magic是通過在前面加%,表示magic只在本行有效。 Cell magic是通過在前面加%%,表示magic在整個cell單元有效。

8. %run運行腳本

在IPython會話環境中,py文件可以通過%run命令當做Python程序來運行,輸入%run 路徑+文件名稱即可。 如圖,e盤中有一py腳本test.py,在IPython中執行。

9.%timeit測量代碼運行時間

IPython使用魔法命令%timeit來測量單行代碼的運行時間。

10.%%timeit測量代碼運行時間

%%timeit用來測量整個單元格代碼的運行時間.

11. %pwd顯示工作路徑

該魔法命令用來顯示當前工作目錄的路徑。

12. %matplotlib inline顯示圖像

在notebook中繪製圖像時,使用%matplotlib inline命令可以將圖表直接嵌入到notebook中,方便查看。

13. %conda安裝第三方庫

%conda install pkgs命令用於在IPython中安裝python第三方庫。

14. %pylab交互式計算

%pylab 魔法命令可以使numpy和matplotlib中的科學計算功能生效,這些功能被稱為基於向量和矩陣的高效操作,交互可視化特性。它能夠讓我們在控制臺進行交互式計算和動態繪圖。

15. %quickref查看參考

%quickref用來查看IPython的特定語法和魔法命令參考。

16. %ls顯示目錄內容

%ls path命令可以用來顯示特定目錄下的內容。

17. 通配符*

使用通配符*?可以模糊查詢方法名及屬性。

18. %cd修改目錄

%cd命令可以修改當前工作目錄。

19. _列印前輸出結果

使用一個下劃線 _ 獲取前一個輸出結果,它是個變量,實時更新的。 使用兩個下劃線 __可以獲取倒數第二個輸出,使用三個下劃線 ___ 獲取倒數第三個輸出(沒有輸出的命令行不計入在內,只支持前三個輸出結果)。

20. ;抑制輸出

在語句後面加上;,不顯示輸出結果。

21. %debug交互式調試器

%debug命令支持從最新的異常跟蹤的底部進入交互式調試器。 在ipdb調試模式下能訪問所有的本地變量和整個棧回溯。使用u和d向上和向下訪問棧,使用q退出調試器。在調試器中輸入?可以查看所有的可用命令列表。

22. %pdb交互式調試器

%pdb同樣用於啟動交互式調試器,不過支持對所有的異常進行調試。你需要事先啟動%pdb命令,之後對每一個異常都會進行調試。

23. %run -d交互式調試器

%run -d用於對腳本進行調試。

24. %pycat語法高亮

%pycat filename用語法高亮顯示一個python文件(不用加.py後綴名)。

25. %env環境變量

%env命令用於顯示環境變量。

25. %load加載代碼

%load命令用於將腳本代碼加載到當前cell。

26. %macro定義宏

%macro taskname n1 n2...用來定義宏,並給宏命名,執行指定的代碼行。 執行name就是執行n1 n2...這些代碼。

27. %notebook導出notebook

%notebook path用於導出當前notebook內容到指定ipynb文件中。

28. %pdef列印構造信息

%pdef命令用來列印類、函數的構造信息。

29. %pdoc列印文檔

%pdoc命令用來列印對象的文檔字符串。

30. %precision浮點數精度

%precision命令用來設置浮點數精度,可添加具體參數,無參數則默認精度。

31. %xdel刪除變量

%xdel命令用於刪除變量,並嘗試清楚其在IPython中的對象上的一切引用。

32. %who顯示變量

%who命令用於顯示當前所有變量,你也可以指定顯示變量的類型。

33. %who顯示變量

%who命令同樣用於顯示當前變量,但提供的信息更加豐富。

34. %save保存cell

%save path n1 n2..命令用於將指定cell代碼保存到指定的py文件中。

35. %reset重置

%reset -f命令用於刪除定義的所有變量,如果不指定參數-f,則需要確認後再重置。

36. %rerun執行前代碼

%rerun命令用於執行之前的代碼,可以指定歷史代碼行,默認最後一行。

37. %%HTML渲染HTML

%%HTML命令用於將單元格渲染為HTML輸出。

38. %%javascript運行JavaScript

%%javascript命令用於運行含有JavaScript代碼的cell。

39. %%latex渲染LaTeX

%%latex命令用於將LaTeX語句渲染為公式,LaTeX是一種基於ΤΕΧ的排版系統。

40. %%markdown渲染markdown

%%markdown命令用於將markdown文本渲染為可視化輸出。

41. %%writefile寫入文件

%%writefile命令用於將單元格內容寫入到指定文件中,文件格式可為txt、py等。

42. %bookmark保存書籤

%bookmark命令能夠保存常用目錄的別名,以便實現快速跳轉,書籤能夠持久化保存。

43. %paste粘貼代碼塊

當你使用 IPython 解釋器時,有件事經常讓你頭疼,那就是粘貼多行代碼塊可能會導致不可預料的錯誤,尤其是其中包含縮進和解釋符號時。 使用%paste命令能夠直接執行剪切板中的python代碼塊。

44. %magic獲取魔法命令列表

%magic用於獲取所有魔法命令及其用法。

45. In和Out

常會看到IPython 中的In[1]:/Out[1]:形式的提示,它們並不僅僅是好看的裝飾形式,還是包含輸入、輸出的變量。 In 對象是一個列表,按照順序記錄所有的命令。 Out 對象不是一個列表,而是一個字典,它將輸入數字映射到相應的輸出(如果有的話)

46. %xmode控制異常

%xmode命令用於控制異常輸出的模式。

47. jupyter qtconsole

jupyter qtconsole 是ipython團隊基於qt框架開發的一個GUI控制臺。 它具有富文本編輯功能,既能夠在裡面實現內嵌圖片、多行編輯、語法高亮等。

48. IPython導航快捷鍵

快捷鍵 動作

Ctrl + a 將光標移到本行的開始處

Ctrl + e 將光標移到本行的結尾處

Ctrl + b(或左箭頭鍵) 將光標回退一個字符

Ctrl + f(或右箭頭鍵) 將光標前進一個字符

49. IPython文本輸入快捷鍵

快捷鍵 動作

Backspace 鍵 刪除前一個字符

Ctrl + d 刪除後一個字符

Ctrl + k 從光標開始剪切至行的末尾

Ctrl + u 從行的開頭剪切至光標

Ctrl + y yank(即粘貼)之前剪切的文本

Ctrl + t transpose(即交換)前兩個字符

50. IPython命令歷史快捷鍵

快捷鍵 動作

Ctrl + p(或向上箭頭) 獲取前一個歷史命令

Ctrl + n(或向下箭頭) 獲取後一個歷史命令

Ctrl + r 對歷史命令的反向搜索

相關焦點

  • 義縣遊學電子科技:win10系統ipython安裝後無法運行的解決方法
    大家好今天是2020.9.12.前幾天有個文章關於安裝ipython的教程,當時使用的是管理員身份安裝的,然後正常運行了ipython.但有一個問題就是如果不以管理員身份運行pip install ipython,即便安裝萬成後也無法運行ipython,這是怎麼了呢?
  • python交互式shell-ipython
    這時候就可以用上ipython。IPython 是一個 python 的交互式 shell,比默認的python shell 好用得多,支持變量自動補全,自動縮進,支持 bash shell 命令,內置了許多很有用的功能和函數。簡介IPython 是基於BSD 開源的。
  • ipython交互模式環境安裝
    2、ipython模式此種模式是python模式的升級,擁有更大的功能,支持自動提示,代碼補全,並且在此模式下可以支持linux命令,非常方便。本文中的講解ipython模式ipython模式安裝說明:只要我們在此交互模式下,輸入命令能夠運行結果,就可以了。
  • IPython,在探索中學習編程
    安裝ipython很簡單,可以直接使用pip管理工具即可:pip install ipython如果使用Anaconda版的python,已經默認安裝了ipython。
  • 讓古人嗤之以鼻的「奇技淫巧」指的到底是什麼?
    而"奇技淫巧"的首次"合流",出現在《尚書·泰誓》:"(周武王指責商紂王)郊社不修,宗廟不享,作奇技淫巧以悅婦人。"這裡的"奇技淫巧",類似"靡靡之音",被認為是供王公貴族享樂的奢侈之物。所以從成語來源看,無論是"奇技"、"淫巧",還是"奇技淫巧",都帶著貶義,至少是否定的色彩。這就像陳後主的《玉樹後庭花》,曲子不錯但寓意亡國,所以一直難以"翻身"或"洗白"。
  • GRE考試有什麼奇技淫巧?
    免責聲明:以下內容都不是嚴肅的學術內容,真的也就是一些所謂的奇技淫巧。不代表考試的時候用了就一定會對,巍哥無法保證百分之百的正確率,只能大概主觀說一下靠譜程度,因為的確這些東西沒有經過嚴格統計過!接下來,就是見證奇蹟的時刻:
  • Python の在 VSCode 中使用 IPython Kernel 的方法
    關於設置方式的解釋:如果不感興趣設置原理,這部分,就可以跳過了,感興趣原理的,請繼續觀看!,寫個幾十行代碼的話,這兩個功能稍微有點 too much 了,而且很佔用屏幕的地方,不夠簡潔!關於這兩個功能,雖然非常好,但這裡就不詳細介紹了!所以,我還是,最喜歡,也最推薦上面的方法!篇尾結語:OK,就先寫到這兒吧!小白貢獻,語失莫怪,希望對大家有幫助。
  • 古代發明的各種各樣的「奇技淫巧」,究竟是一種什麼樣的東西
    然而,我們需要了解的是,在這裡所說的「奇技淫巧」中,「奇」與「淫」的含義,與我們所理解的並不完全相同。古代的人說「奇」,就是「不尋常」;古代的人說「淫」,就是「過分」,當然,也有一些「好色」的意思,但這個意思比較薄弱,主要講的,還是「過分」。也許每個人都注意到了一個現象,那就是中國古代並不熱衷發明。
  • Jupyter/IPython筆記本集合 !(附大量資源連結)-上篇
    以及來自scipy堆棧的其他工具的額外材料。GitHub存儲庫中提供了100個代碼。GitHub存儲庫https://github.com/ipython-books/cookbook-codeHannes Schulz和Andreas Mueller 的介紹使用Python和scikit-learn(repo和overview)的機器學習。
  • 馬未都的4件「奇技淫巧」:巧奪天工,防身暗器那件,威力不小
    馬未都的4件「奇技淫巧」:巧奪天工,防身暗器那件,威力不小人們經常用奇技淫巧這個略帶誇張的詞彙,來特指那些新奇未曾見到的技藝與辣眼睛的作品。馬未都作為首屈一指的藏家,手裡頭還真有一些人們意想不到的「奇技淫巧」。
  • 古人眼中的「奇技淫巧」,手法巧奪天工,現代人也難以做到
    在對我國近代科學發展落後的研究反思中,專家學者總會提到一個詞語「奇技淫巧」。明清時期,統治者對於科學技術的採取抵制和輕鄙的態度,從而導致中國近代科學的發展被扼殺在襁褓裡。 儒學家們對於「奇技淫巧」完全持否定的態度,加上歷朝歷代重用儒學治國和經濟體制的影響,中國古代的科學技術無法向前發展。無論遇到什麼樣的阻力,古人照樣發明出許多令今人為之驚嘆的器物。如今出土的很多文物中,甚至還有的連今人也無法複製。
  • IPython 4.0 發布,Python 命令行式交互
    下載:https://github.com/ipython/ipython/archive/4.0.0.zip。IPython 是 Python 的原生交互式 shell 的增強版,可以完成許多不同尋常的任務,比如幫助實現並行化計算;主要使用它提供的交互性幫助,比如代碼著色、改進了的命令行回調、制表符完成、宏功能以及改進了的交互式幫助。
  • 古人對奇技淫巧的實踐,這些讓人驚嘆的設計,為何得不到認可?
    奇技淫巧,一個會經常被誤解成是什麼房中秘術的成語。何為淫這個成語因為有個「淫」字,向來會被誤以為是什麼不可描述的形容。誠然,「淫」確實有「淫色」、「荒淫」的意思,但它其實還有幾種常用的本義,比如漸浸、浸漬;沉溺、過度。
  • 古人房中的「奇技淫巧」,製作手法巧奪天工,現在看來也很神奇
    ——《書·泰誓下》說到「奇技淫巧」這個詞,大家應該都有聽說過吧?別以為裡面有一個「淫」字,就認為這個詞是跟大家的想法一樣的,其實這個詞說的只不過是一些比較新奇有趣的工藝品。但在古代,奇技淫巧是不被人們支持的,甚至被認為是玩物喪志,但不可否認的是,古人當中的奇技淫巧,大部分手法巧奪天工,就連專家都說道:現代人未必會做!
  • 古代10大古代奇技淫巧的日用品,長見識
    10大古代奇技淫巧的日用品,長見識 奇技淫巧」指的是各種過分巧妙的技藝工巧,是中國古代對很多新奇發明或小物件的稱呼。 在大多數人印象裡,我國傳統文化裡面缺乏對技術的重視,古人將工藝和技術,稱為「奇技淫巧」。
  • 不得不佩服古人的奇技淫巧
    不得不佩服古人的奇技淫巧文/檸檬每一年的旅遊去遊玩的什麼的也都是必不可少的啦,有些細心得朋友們會發現一個細節,在一些情侶酒店房間會出現床頭會擺放一張軟綿綿的長凳子,今天我們得話題就是這個凳子的作用是做什麼的,為什麼要有個凳子在床尾處。讓人想不透,捉摸不透,大致每一家的酒店裡的床尾的位置都會有這麼一張凳子擺放在那!
  • 古時候屋子的「奇技淫巧」您的屋子有嗎?看看古人的智慧!
    古代房間的「奇技淫巧」你的房間有嗎?看看古人的智慧!奇技淫巧很多人都不知道這個詞是什麼意思,總感覺它不是一個好詞,甚至有一層邪惡的意思在裡面。其實大家都誤會這個詞了,它本是個褒義詞,形容工匠們做出的東西極為驚奇,那麼古代房子裡面的奇巧東西都有什麼呢?
  • 古人房中的「奇技淫巧」,製作工藝精妙絕倫,現代人也比不上
    ——善住《謁金門贈雕鑾匠》在獨尊儒學的古代,統治階級把聖人學說之外的技術、工藝都視為奇技淫巧,予以壓制。獨尊儒學以前的春秋、戰國時期,中國文化處在一個百家爭鳴的狀態。其中墨家尤為注重自然知識以及技能、工藝。歷史上著名的能工巧匠魯班,就出自墨家。日本的所謂武士道和工匠精神,據說也跟墨家有關。
  • 古人發明的5件「奇技淫巧」,至今無法復原,老祖宗可真會享受!
    古人發明的5件「奇技淫巧」,至今無法復原,老祖宗可真會享受!中華有著5000年的歷史文明,老祖宗給我們留下了很多寶貴的財富,有的人笑談「中國人沉迷祖宗,美國人探索外空」,其實事實真的是這樣嗎?我們要知道,中國的科技發展也是非常厲害的,探索太空的技術也是一流的,關於未來的發展方向,自然也是復興傳統文化和發展現代科技文明齊驅並進的,所以像「中國人沉迷老祖宗」這樣的說法是明顯不對的,更何況歷史上有很多偉大的發明,我們現在的手段和技術是完全無法將這些東西復原的。
  • 古人房中用的「奇技淫巧」,看了讓人眼前一亮,居然還有這種奇物
    古人房中用的「奇技淫巧」,看了讓人眼前一亮,居然還有這種奇物18世紀60年代,英國爆發工業革命,從此人類便逐漸擺脫了過去的純手工生產,正是進入了工業文明時期。如今300多年過去了,世界已經徹底的成為了工業化時代,但有些時候我們也不得不承認,最好最精細的東西還是要數人工製品。