自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python學習經驗談:版本、IDE選擇及編碼解決方案

開發(fā) 開發(fā)工具
本文對Python的版本選擇,IDE選擇及編碼的解決方案進行了一番詳細的描述,實為Python初學者必讀的Python學習經驗心得。

話說目前三種常見動態(tài)語言Ruby, Lua, Python我竟然都接觸過了,用下來發(fā)現還是Python比較有趣

"Battery Included“的確不是蓋的,各種功能的庫一應俱全,幾行代碼就能完成神奇的功能。以下介紹學習Python以來的一些感想跟經驗,希望對想要學習Python或者和我一樣的Python初級入門者能有所幫助

另外強調下本文全部講的是Windows平臺下的事情…

Python學習經驗1.選擇Python版本和發(fā)行版

Python目前的主流版本很豐富,2.5,2.6和新的3.0都有人用。那么到底該裝哪個版本好呢?

經過一段時間的使用我強烈的意識到目前的情況下(今天是09年5月24日),絕對是2.5版比較合適。

主要是因為非常多的第三方庫目前只有對應2.5的簡單安裝包。雖然理論上2.5下能用的庫2.6也肯定沒問題,但是實際上總有各種各樣的問題。例如pyinstaller到現在也是只支持2.5。在這個問題上我可以非常堅定的講:裝2.5肯定沒錯,你以后會因為這個感謝我的。

Windows下是沒有自帶Python的,那么選擇一個發(fā)行版是必須的。

常見的發(fā)行版有Python.org的官方的發(fā)行版,ActiveState的ActivePython這兩個。

之前我一直裝的是后面ActiveState的哪一個,后來因為要用到numpy,找到了這個Python(x, y)

用上這個以后我對Python的好感是更上一層樓。

[[5266]]

這個發(fā)行版有點大(接近400mb),但是里面附帶了科學計算方面的很多常用庫,以及著名的PyQt ??赡苡腥擞X得科學計算方面的庫不太用的到,但像nump,scipy等一干庫被很多其他庫依賴,還有很多文檔相關的庫如sphinx沒有的話也會很頭痛。同時PyQt對于新手來說也是出名的難以正確配置,而python(x, y)裝好了以后直接就能用,感覺非常棒。同時該發(fā)行版還附帶了IDE和一些有用的工具。其中IPython完全替代了Python自帶的那個難用的互動Shell。

IPython

Python自帶的shell應該還是蠻常用的。那么這個IPython就相當于它的超級加強版:帶彩色顯示,語句自動完成,額外的常用命令等等。其中tab鍵自動補完非常強大。比如在上圖中我輸入sys. (注意有個點),然后按tab鍵,這時IPython會顯示出sys下所有的屬性和方法,這肯定就是你我朝思暮想的超級自動補全。而且應為是在互動模式下,語句是實實在在被執(zhí)行的,很好理解這里的自動補全是最完整的,比單靠分析代碼的方式效果好很多。

其他方面的話,Python(x, y)還附帶了所有庫的離線文檔(看的出來都是人工整理出來的),以及Eclipse+PyDev集成(這個下面會單獨講到)。附帶一個工具用于啟動各個部分以及查閱文檔。

其自帶的Python版本正是2.5

總之,裝個Python(x, y)試試看,十有八九不會后悔。

Python學習經驗2.IDE的選擇

我一直認為選擇一個好用的IDE絕對能使編程樂趣加倍,而對我來說好的IDE最重要的一點就是代碼補全和自動文檔顯示。我嘗試過的IDE/編輯器有Komodo Edit,UliPad,Pydev***還是選擇了Pydev這個看似有點笨重的Eclipse集成。

Pydev的基本使用跟其他的差不多,在代碼補全方面有點小技巧:

Pydev會自動通過代碼分析來進行一定程度上的代碼補全,但是很多需要運行時才能獲得的信息是不能這樣獲得的。通過在Pydev中設置Forced Buildins來設置,能取得更好的效果。試了幾次發(fā)現基本上大部分庫都能獲得自動補全,同時會顯示docstring,效果相當不錯。

具體方法如下圖,在Pydev窗口中選擇菜單欄Window->Preference->Pydev->Interpreter Python

如下圖中,點擊New,輸入你需要使用的模塊名字即可

輸入你需要使用的模塊名字

總體效果絕對是同類IDE中比較好的

總體效果

Python學習經驗3.Python中String/Unicode的編碼問題

Python中的String和Unicode都提供了decode和encode方法,讓人很容易混亂,然而出現亂碼和UnicodeEncodeError這種情況很讓人崩潰,那么下面介紹些個人心得。

Python中的String的地位就相當與C中的char *做的字符串,儲存的可以使ASCII字符串,也可以是未經處理的數據。所以String中的每一個值都像是一個char。而Unicode中則將每一個元素認為是一個真正的Unicode字符。

關于decode/encode方法。decode可以理解為decode from,由一個String調用decode方法將他自己按傳入的編碼名來decode成為一個Unicode串。encode可以理解為encode to,由一個Unicode 來調用encode方法將他自己按照傳入的編碼名來encode為一個String串。所以String就是輸入輸出時使用的,而Unicode則是程序內部進行處理時的東西。

對于編碼是產生Error,則可以通過在Encode時傳入錯誤處理參數   'ignore’/ ' replace’ 來避免。

本文來自apit的博客:《Python二三事》

【編輯推薦】

  1. Python和Ruby:流行動態(tài)腳本語言之特點對比
  2. Ruby和Python的語法比較
  3. Python框架更新:Django 1.1修煉一年始出爐
  4. Python和Jython的區(qū)別簡述
  5. 淺談使用Aptana構建Python開發(fā)環(huán)境
責任編輯:yangsai 來源: apit的博客
相關推薦

2011-09-09 09:50:40

Oracle

2009-08-03 10:13:13

開發(fā)框架

2010-02-03 09:53:08

Python版本

2010-02-01 15:41:55

擴展Python

2010-02-02 17:08:26

Python靜態(tài)編譯器

2010-02-02 17:08:26

Python靜態(tài)編譯器

2010-02-02 16:07:17

Python開發(fā)人員

2009-08-07 17:38:08

C#無詞尾符號

2009-07-02 11:49:44

JSP學習步驟

2010-02-01 17:33:24

Python主線程

2024-05-28 07:01:29

2013-08-28 15:53:41

遠程工作遠程管理項目管理

2009-09-14 15:04:44

2010-02-01 14:48:43

2010-02-26 09:42:52

Python線程池

2011-08-15 10:27:48

2014-03-13 09:20:38

jQueryAngularJs

2011-06-21 16:26:19

SEO內部優(yōu)化

2013-08-02 11:23:45

2010-08-17 13:23:49

點贊
收藏

51CTO技術棧公眾號