Python簡介
一、什麼是Python
Python 是一個有條理的和強大的面向物件的程式設計語言,類似於Perl, Ruby, Scheme, 或 Java.它被逐漸廣泛應用於系統管理任務的處理和Web程式設計。
Python注重的是如何解決問題而不是程式語言的語法和結構。
Python是一種簡單易學,功能強大的程式語言,它有高效率的高層資料結構,簡單而有效地實現面向物件程式設計。
Python簡潔的語法和對動態輸入的支援,再加上解釋性語言的本質,使得它在大多數平臺上的許多領域都是一個理想的指令碼語言,特別適用於快速的應用程式開發。
二、Python設計思想
Python設計者開發時總的指導思想是:簡單即是美!對於一個特定的問題,只要有一種最好的方法來解決就好了。
三、Python特色
簡單易學
Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程式就感覺像是在讀英語一樣,儘管這個英語的要求非常嚴格!Python的這種虛擬碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。Python語法簡單,極其容易上手
免費、開源
Python是FLOSS(自由/開放原始碼軟體)之一。簡單地說,可以自由地釋出這個軟體的拷貝、閱讀它的原始碼、對它做改動、把它的一部分用於新的自由軟體中。FLOSS是基於一個團體分享知識的概念。這是為什麼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!
解釋性
Python是一種解釋型語言。這就是說,與C語言和C的衍生語言不同,Python程式碼在執行之前不需要編譯。其他解釋型語言還包括PHP和Ruby。
面向物件
Python非常適合面向物件的程式設計(OOP),因為它支援通過組合(composition)與繼承(inheritance)的方式定義類(class)。Python中沒有訪問說明符(access specifier,類似C++中的public和private),這麼設計的依據是“大家都是成年人了”。
可擴充套件
如果你需要你的一段關鍵程式碼執行得更快或者希望某些演算法不公開,你可以把你的部分程式用C或C++編寫,然後在你的Python程式中使用它們。
可嵌入性
可以把Python嵌入你的C/C++程式,從而向你的程式使用者提供指令碼功能
強大的標準庫
Python標準庫,包括正則表示式、文件生成、單元測試、執行緒、資料庫、網頁瀏覽器、CGI、 FTP、電子郵件、XML、XML-RPC、HTML、WAV檔案、密碼系統、GUI(圖形使用者介面)、Tk和其他與系統有關的操作,強大到你想不到
四、Python能做什麼
-
系統程式設計
Python對作業系統服務的內建介面,使其成為編寫可移植的維護作業系統的管理工具和部件的理想工具。Python程式可以搜尋檔案和目錄樹,可以執行其他程式,用程序或執行緒進行並行處理等。
Python的標準庫綁定了POSIX以及其他常規作業系統工具:環境變數、檔案、套接字、管道、程序、多執行緒、正則表示式、命令列引數、標準流介面、Shell命令啟動器、檔名擴充套件等。
-
使用者圖形介面
Python的簡潔以及快速的開發週期十分適合開發GUI程式
內建了Tk GUIAPI,可以生成可移植的本地觀感的GUI,可以不做任何改變就可以執行在Windows、Xwindows、MacOS等平臺
wxPython GUI API
PythonCard、Dabo等構建在wxPython 和Tkinter基礎上的高階工具包
通過適當的庫,可以使用其他GUI工具包
-
Internet通訊
Python提供了標準Internet模組,可以廣泛應用到各種網路任務中,無論服務端還是在客戶端
-
套接字
XML-RPC、SOAP、Telnet等通訊
Twisted
網站程式設計第三方工具:HTMLGen、mod_python、Django、TurboGears、Zop,使Python能夠快速構建功能完善和高質量的網站
-
元件整合
Python可以通過c/c++進行擴充套件,並能夠巢狀c/c++系統的特性,使其能夠作為一種靈活的粘合語言,指令碼化處理其他系統和元件的行為
呼叫其他現有元件,如COM、基於Java實現的Jython、基於.NET實現的IronPython、各種Corba工具包等
-
資料庫程式設計
支援所有主流資料庫:Oracle、Sybase、SQL/">MySQL、PostgreSQL、Informix、SQLite
定義了標準的、可移植的資料庫API
Pickle
面向物件資料庫系統:ZODB
從關係資料庫對映到Python類(ORM): SQLAlchemy 、SQLObject
-
快速原型
對Python程式來說,Python和C編寫的模組看起來是一樣的,因此,可以在一開始利用Python做系統原型、之後再將元件移植到C/C++
移植時Python程式碼不需要重寫,系統中不需要變成C/C++的部分可以保持不變,從而使維護和使用變得輕鬆起來
-
數值計算和科學計算
-
遊戲、影象、人工智慧、機器人等
Pygame/Bigworld
PIL
PyRO(機器人控制)
神經網路模擬器
NLTK(自然語言分析)
五、與其他語言對比
比TCL強大,支援“大規模程式設計”,適宜於開發大型系統
比Perl語法簡潔,更具可讀性、更易於維護,有助於減少Bug
比Java更簡單、更易於使用
比C++更簡單、更易於使用,不與之競爭
比VB更強大也更具備跨平臺特性
比Ruby更成熟、語法更具可讀性
六、圖示