目錄
<dl></dl>
<dd></dd>
<dd>展開</dd>
ABC是由Guido參加設計的一種教學語言。就Guido本人看來,ABC 這種語言非常優美和強大,是專門為非專業程式員設計的。但是ABC語言并沒有成功,究其原因,Guido 認為是非開放造成的。Guido 決心在Python 中避免這一錯誤。同時,他還想實作在ABC 中閃現過但未曾實作的東西。
就這樣,Python在Guido手中誕生了。實際上,第一個實作是在Mac機上。可以說,Python是從ABC發展起來,主要受到了Modula-3(另一種相當優美且強大的語言,為小型團體所設計的)的影響。并且結合了Unix shell和C的習慣。
Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀、易維護,并且被大量使用者所歡迎的、用途廣泛的語言。
Python的作者有意的設計限制性很強的文法,使得不好的程式設計習慣(例如if語句的下一行不向右縮進)都不能通過編譯。其中很重要的一項就是Python的縮進規則。
一個和其他大多數語言(如C)的差別就是,一個子產品的界限,完全是由每行的首字元在這一行的位置來決定的(而C語言是用一對花括号{}來明确的定出子產品的邊界的,與字元的位置毫無關系)。這一點曾經引起過争議。因為自從C這類的語言誕生後,語言的文法含義與字元的排列方式分離開來,曾經被認為是一種程式語言的進步。不過不可否認的是,通過強制程式員們縮進(包括if,for和函數定義等所有需要使用子產品的地方),Python确實使得程式更加清晰和美觀。
基于C的Python編譯出的位元組碼檔案,通常是.pyc格式。
簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程式就感覺像是在讀英語一樣。它使你能夠專注于解決問題而不是去搞明白語言本身。
易學:Python極其容易上手,因為Python有極其簡單的文法。
高層語言:用Python語言編寫程式的時候無需考慮諸如如何管理你的程式使用的記憶體一類的底層細節。
可移植性:由于它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。這些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux開發的android平台。
運作程式的時候,連接配接/轉載器軟體把你的程式從硬碟複制到記憶體中并且運作。而Python語言寫的程式不需要編譯成二進制代碼。你可以直接從源代碼運作 程式。
面向對象:Python既支援面向過程的程式設計也支援面向對象的程式設計。在“面向過程”的語言中,程式是由過程或僅僅是可重用代碼的函數建構起來的。在“面向對象”的語言中,程式是由資料和功能組合而成的對象建構起來的。
可擴充性:如果需要一段關鍵代碼運作得更快或者希望某些算法不公開,可以部分程式用C或C++編寫,然後在Python程式中使用它們。
可嵌入性:可以把Python嵌入C/C++程式,進而向程式使用者提供腳本功能。
規範的代碼:Python采用強制縮進的方式使得代碼具有較好可讀性。
強制縮進:這也許不應該被稱為局限,但是它用縮進來區分語句關系的方式還是給很多初學者帶來了困惑。
單行語句和指令行輸出問題:很多時候不能将程式連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,可以較為友善的在shell下完成簡單程式,不需要如Python一樣,必須将程式寫入一個.py檔案。
圖形處理:有PIL、Tkinter等圖形庫支援,能友善進行圖形處理。
數學處理:NumPy擴充提供大量與許多标準數學庫的接口。
文本處理:python提供的re子產品能支援正規表達式,還提供SGML,XML分析子產品,許多程式員利用python進行XML程式的開發。
資料庫程式設計:程式員可通過遵循Python DB-API(資料庫應用程式程式設計接口)規範的子產品與Microsoft SQL Server,Oracle,Sybase,DB2,Mysql、SQLite等資料庫通信。python自帶有一個Gadfly子產品,提供了一個完整的SQL環境。
Web程式設計:應用的開發語言,支援最新的XML技術。
名稱
功能
Tkinter
Python預設的圖形界面接口。Tkinter是一個和Tk接口的Python子產品,Tkinter庫提供了對Tk API的接口,它屬于Tcl/Tk的GUI工具組。Tcl/Tk是由John Ousterhout發展的書寫和圖形裝置。Tcl(工具指令語言)是個宏語言,用于簡化shell下複雜程式的開發,Tk工具包是和Tcl一起開發的,目的是為了簡化使用者接口的設計過程。Tk工具包由許多不同的小部件,如一個按鈕、一個滾動條等。通過Tk提供的這些小部件,我們就可快速地進行GUI開發。Perl、Scheme等語言也利用Tk庫進行GUI開發。Tkinter是跨平台,在各種平台下都能使用。
PyGTK
用于python GUI程式開發的GTK+庫。GTK就是用來實作GIMP和Gnome的庫。
<a href="http://baike.baidu.com/view/2888080.htm" target="_blank">PyQt</a>
用于python的Qt開發庫。QT就是實作了KDE環境的那個庫,由一系列的子產品組成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300個類和超過5750個的函數和方法。PyQt還支援一個叫qtext的子產品,它包含一個QScintilla庫。該庫是Scintillar編輯器類的Qt接口。
wxPython
GUI程式設計架構,熟悉MFC的人會非常喜歡,簡直是同一架構(對于初學者或者對設計要求不高的使用者來說,使用Boa Constructor可以友善迅速的進行wxPython的開發)
<a href="http://baike.baidu.com/view/1369367.htm" target="_blank">PIL</a>
Psyco
一個Python代碼加速度器,可使Python代碼的執行速度提高到與編譯語言一樣的水準。
xmpppy
Jabber伺服器采用開發的XMPP協定,Google Talk也是采用XMPP協定的IM系統。在Python中有一個xmpppy子產品支援該協定。也就是說,我們可以通過該子產品與Jabber伺服器通信,是不是很Cool。
PyMedia
用于多媒體操作的python子產品。它提供了豐富而簡單的接口用于多媒體處理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。
Pmw
Python megawidgets,Python超級GUI元件集,一個在python中利用Tkinter子產品建構的進階GUI元件,每個Pmw都合并了一個或多個Tkinter元件,以實作更有用和更複雜的功能。
PyXML
用Python解析和處理XML文檔的工具包,包中的4DOM是完全相容于W3C DOM規範的。它包含以下内容:
xmlproc: 一個符合規範的XML解析器。
Expat: 一個快速的,非驗證的XML解析器。還有其他
和他同級别的還有 PyHtml PySGML。
<a href="http://baike.baidu.com/view/2602650.htm" target="_blank">PyGame</a>
用于多媒體開發和遊戲軟體開發的子產品。
PyOpenGL
子產品封裝了“OpenGL應用程式程式設計接口”,通過該子產品python程式員可在程式中內建2D和3D的圖形。
NumPy、NumArray、SAGE
NumArray是Python的一個擴充庫,主要用于處理任意維數的固定類型數組,簡單說就是一個矩陣庫。它的底層代碼使用C來編寫,是以速度的優勢很明顯。SAGE是基于NumPy和其他幾個工具所整合成的數學軟體包,目标是取代Magma, Maple, Mathematica和Matlab 這類工具。
MySQLdb
用于連接配接MySQL資料庫。還有用于zope的ZMySQLDA子產品,通過它就可在zope中連接配接mysql資料庫。
Python-ldap
提供一組面向對象的API,可友善地在python中通路ldap目錄服務,它基于OpenLDAP2.x。
smtplib
發送電子郵件。
ftplib
定義了FTP類和一些方法,用以進行用戶端的ftp程式設計。如果想了解ftp協定的詳細内容,請參考RFC959。
Python 3.0的變化主要在以下幾個方面:
部分函數和語句的改變:最引人注意的改變是print語句沒有了,取而代之的是print函數。
●IDLE:Python内置IDE (随python安裝包提供)
●Komodo和Komodo Edit:後者是前者的免費精簡版
●PythonWin:ActivePython或pywin32均提供該IDE,僅适用于Windows
●SPE(Stani's Python Editor):功能較多的自由軟體,基于wxPython
●Ulipad:功能較全的自由軟體,基于wxPython;作者是中國Python高手limodou
●WingIDE:可能是功能最全的IDE,但不是自由軟體(教育使用者和開源使用者可以申請免費key)
●Eric:基于PyQt的自由軟體,功能強大。全名是:The Eric Python IDE
●DrPython
●PyPE:一個開源的跨平台的PythonIDE。
●emacs:自帶python支援,自動補全、refactor等功能需要插件支援
●Vim: 最新7.3版編譯時可以加入python支援,提供python代碼自動提示支援
●Visual Studio 2003 + VisualPython:僅适用Windows,已停止維護,功能較差
●SlickEdit
●Visual Studio 2010 + Python Tools for Visual Studio
●TextMate
●Netbeans IDE
1. 運作速度。
2. 國内市場較小。
3. 中文資料匮乏(好的python中文資料屈指可數)。托社群的福,有幾本優秀的教材已經被翻譯了,但入門級教材多,進階内容還是隻能看英語版。
4. 構架選擇太多。不過這也從另一個側面說明,python比較優秀,吸引的人才多,項目也多。
<dt>擴充閱讀:</dt>
1
2
<dt>開放分類:</dt>