ipython與python的區別

2022-04-19 19:59:35 字數 2149 閱讀 4726

ipython的開發者吸收了標準直譯器的基本概念,在此基礎上進行了大量的改進,創造出乙個令人驚奇的工具。在它的主頁上是這麼說的:「這是乙個增強的互動式python shell。」具有tab補全,物件自省,強大的歷史機制,內嵌的源**編輯,整合python偵錯程式,%run機制,巨集,建立多個環境以及呼叫系統shell的能力。

1)ipython與標準python的最大區別在於,ipython會對命令提示符的每一行進行編號。如下圖:

對比兩個例子,其輸出變數值似乎相同,其實仍有差別。print語句使用非正式的(unofficial)字串表示式,而簡單變數名(bare variable name)使用了正式的(official)字串表示式。在處理自定義類而不是內建類時,這種差異會體現得非常明顯。

in [10]: class doublerep(object):  

....: def __str__(self):  

....: return 'hi, i'm a __str__'  

....: def __repr__(self):  

....: return 'hi, i'm a __repr__'  

....:  

....:  

in [11]: dr = doublerep()  

in [12]: print dr  

hi, i'm a __str__  

in [13]: dr  

out[13]: hi, i'm a __repr__ 

2)tab補全

作為例子,我們先引入 sys 模組,之後再輸入 sys. (注意有個點),此時按下 tab 鍵,ipython 會列出所有 sys

模組下的方法和屬性。

接著上面的例子,我們輸入 sys?再回車,這樣會顯示出 sys 模組的 docstring及相關資訊。很多時候這個也是很方便的功能。

3)歷史機制

hist可以快速檢視那些輸入的歷史記錄。

hist -n可以快速檢視並去掉歷史記錄中的序號,這樣你就可以方便的將**複製到乙個文字編輯器中。

乙個更簡單的方法是edit加python列表的切片(slice)語法:

edit 4:7 % 將第4,5,6,7句**匯出到編輯器

4)斷點除錯:如果你的程式是由命令列開始執行的,即在命令列下輸入 python foo.py(大部分 python 程式都是),那麼你還可以利用 ipython 在你的程式任意地方進行斷點除錯。

在你程式中任意地方,加入如下語句:

from ipython.shell import ipshellembed

ipshellembed()()

注意:最近 ipython 發布了 0.11 版本,各方面變化都非常大,api 也經過了重新設計。如果你使用的是 0.11 那麼上面兩行對應的是這樣的:

from ipython import embed

embed()

再和平常一樣執行你的程式,你會發現在程式執行到插入語句的地方時,會轉到 ipython 環境下。你可以試試執行些指令,就會發現此刻 ipython 的環境就是在程式的那個位置。你可以逐個瀏覽當前狀態下的各個變數,呼叫各種函式,輸出你感興趣的值來幫助除錯。之後你可以照常退出 ipython,然後程式會繼續執行下去,自然地你在當時 ipython 下執行的語句也會對程式接下來的執行造成影響。

這個方法是在這裡(看到的。想象一下,這樣做就像讓高速運轉的程式暫停下來,你再對執行中的程式進行檢查和修改,之後再讓他繼續執行下去。這裡舉乙個例子,比如編寫網頁 bot ,你在每取回乙個頁面後你都得看看它的內容,再嘗試如何處理他獲得下乙個頁面的位址。運用這個技巧,你可以在取回頁面後讓程式中斷,再那裡實驗各種處理方 法,在找到正確的處理方式後寫回到你的**中,再進行下一步。這種工作流程只有像 python 這種動態語言才可以做到。

ipython與python的區別

ipython的開發者吸收了標準直譯器的基本概念,在此基礎上進行了大量的改進,創造出乙個令人驚奇的工具。在它的主頁上是這麼說的 這是乙個增強的互動式pythonshell。具有tab補全,物件自省,強大的歷史機制,內嵌的源 編輯,整合python偵錯程式,run機制,巨集,建立多個環境以及呼叫系統s...

ipython介紹 IPython的介紹與使用

1 ipython簡介 ipython是乙個python的互動式shell,比預設的python shell好用得多,支援變數自動補全,自動縮排,支援bash shell命令,內建了許多很有用的功能和函式。學習ipython將會讓我們以一種更高的效率來使用python。同時它也是利用python進行...

IPython的介紹與使用

ipython是乙個python的互動式shell,比預設的python shell好用得多,支援變數自動補全,自動縮排,支援bash shell命令,內建了許多很有用的功能和函式。學習ipython將會讓我們以一種更高的效率來使用python。同時它也是利用python進行科學計算和互動視覺化的乙...