ipython與python的區別

來源:互聯網
上載者:User

標籤:發布   sys   arch   最大   暫停   內容   退出   tor   工具   

http://mba.shengwushibie.com/itbook/BookChapter.asp?id=8745http://www.cnblogs.com/yangze/archive/2011/07/11/2103040.htmlhttp://matrix.42qu.com/10735149http://www.cnblogs.com/weishun/p/great-ipython.htmlhttp://blog.sina.com.cn/s/blog_6fb8aa0d0101r5o1.html 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 IPShellEmbedIPShellEmbed([])()注意:最近 IPython 發布了 0.11 版本,各方面變化都非常大,API 也經過了重新設計。如果你使用的是 0.11 那麼上面兩行對應的是這樣的:from IPython import embedembed()再和平常一樣運行你的程式,你會發現在程式運行到插入語句的地方時,會轉到 IPython 環境下。你可以試試運行些指令,就會發現此刻 IPython 的環境就是在程式的那個位置。你可以逐個瀏覽目前狀態下的各個變數,調用各種函數,輸出你感興趣的值來協助調試。之後你可以照常退出 IPython,然後程式會繼續運行下去,自然地你在當時 IPython 下執行的語句也會對程式接下來的運行造成影響。這個方法是在這裡(http://lukeplant.me.uk/blog/posts/exploratory-programming-with-ipython/)看到的。想象一下,這樣做就像讓高速運轉的程式暫停下來,你再對運行中的程式進行檢查和修改,之後再讓他繼續運行下去。這裡舉一個例子,比如編寫網頁 bot ,你在每取回一個頁面後你都得看看它的內容,再嘗試如何處理他獲得下一個頁面的地址。運用這個技巧,你可以在取回頁面後讓程式中斷,再那裡實驗各種處理方 法,在找到正確的處理方式後寫回到你的代碼中,再進行下一步。這種工作流程只有像 Python 這種動態語言才可以做到。

ipython與python的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.