- Python程序設計案例教程
- 徐光俠 常光輝 解紹詞 黃德玲
- 3350字
- 2020-11-21 12:00:56
1.3 Python可以做些什么
Python是一種面向對象的程序設計語言,它作為一種功能強大且通用的編程語言而廣受好評,具有非常清晰的語法特點并且適用于多種操作系統。Python在軟件質量控制、提升開發效率、可移植性、組件集成、豐富庫支持等各個方面均處于領先地位。許多大公司都在使用Python完成各種各樣的任務,例如 YouTube、Instagram、Google、Yahoo 等,甚至美國航空航天局都大量地使用Python。
1.系統編程
Python 擁有操作系統服務的內置接口,使其成為可移植的操作系統維護工具(有時也稱為Shell工具)。Python程序可以搜索文件和目錄樹,可以運行其他程序,可以用進程或線程進行并行處理等。
Python的標準庫綁定了POSIX(可移植操作系統接口)以及其他常規操作系統工具:環境變量、文件、套接字、管道、進程、多線程、正則表達式模式匹配、命令行參數、標準流接口、Shell命令啟動器、文件名擴展等。此外,很多Python的系統工具在設計過程中也考慮了其可移植性。例如,復制目錄樹的腳本不需要做任何修改就可以在幾乎所有的Python平臺上運行。
2.科學與數字計算
Python被廣泛地應用于科學和數字計算中,例如NumPy、SciPy、Biopython、SunPy等Python擴展工具,經常被應用于生物信息學、物理、建筑、地理信息系統、圖像可視化分析、生命科學等領域。
NumPy數值編程擴展包括很多高級工具,例如矩陣對象、標準數學庫的接口等。它將Python變成一個縝密嚴謹并簡單易用的數值計算工具,這個工具通常可以用來替代已有的代碼,而這些代碼都是用FORTRAN或C++等編譯語言編寫的。其他一些數值計算工具為Python提供了動畫、3D可視化、并行處理等功能的支持。例如,常用的SciPy和 ScientificPython擴展,為使用科學編程工具以及NumPy代碼提供了額外的庫。
隨著NumPy、SciPy、Matplotlib、ETS等眾多程序庫的開發,Python越來越適合于做科學計算。與科學計算領域最流行的商業軟件MATLAB相比,Python是一門真正的通用程序設計語言,比MATLAB所采用的腳本語言的應用范圍更廣泛,有更多程序庫的支持,適用于Windows和Linux等多種平臺,完全免費并且開放源碼。雖然 MATLAB 中的某些高級功能目前還無法替代,但是對于基礎性、前瞻性的科研工作和應用系統的開發,完全可以用Python來完成。
3.數據庫編程
Python提供了所有主流的數據庫接口,例如:Sybase、Oracle、Informix、ODBC、MySQL、PostgreSQL、SQLite等。Python定義了一種腳本,可以存取SQL數據庫系統的可移植API,這個API 對于各種底層應用的數據庫系統都是統一的。例如,因為廠商的接口需要實現為可移植的API,所以一個自由軟件MySQL系統的腳本不需做改變就可以工作在其他系統上(例如Oracle),僅需要將底層的廠商接口替換掉就可以實現。
Python 標準的 pickle 模塊提供了一個簡單的對象持久化系統,它能夠讓程序輕松地將整個Python對象保存或恢復到文件和文件類的對象中。在網絡上,同樣可以找到名叫ZODB的第三方系統,它為Python腳本提供了完整的面向對象數據庫系統,系統SQLObject可以將關系數據庫映射至Python的類模塊。并且從Python 2.5版本開始,SQLite已經成為Python自帶標準庫的一部分了。
4.游戲、多媒體、人工智能、XML、機器人等
Python的應用領域很多,遠比這里提到的要多得多。
?? 可以利用pygame系統使用Python對圖形和游戲進行編程。
?? 利用PIL、Piddle、ReportLab等模塊,可以處理圖像、聲音、視頻、動畫等,從而為你的程序添加亮麗的光彩。動態圖表的生成、統計分析圖表都可以通過Python來完成。
?? 用PyOpenGl模塊,可以非常迅速地編寫出三維場景。
?? 用PyRo工具包進行機器人控制編程。
?? 用XML庫、xmlrpclib模塊和其他一些第三方擴展進行XML解析。
?? 使用神經網絡仿真器和專業的系統Shell進行AI編程。
?? 使用NLTK包進行自然語言分析,甚至可以使用PySol程序下棋娛樂。
5.快速原型
對于Python程序來說,使用Python或C編寫的組件看起來都是一樣的。正因為如此,我們可以在一開始利用Python做系統原型,之后再將組件移植到C或C++這樣的編譯語言上。當原型確定后就不需要重寫,這是Python和其他的原型工具不同的地方。系統中執行效率不高的部分可以保持不變,從而使使用和維護變得輕松起來。
6.Internet腳本
Python提供了標準的Internet模塊,無論是在服務器端還是在客戶端,它都能使Python程序廣泛地在多種網絡任務中發揮作用。腳本可以通過套接字進行通信;從發給服務器端的CGI腳本的表單中提取信息;通過FTP傳輸文件;解析、生成和分析XML文件;發送、接收、編寫和解析Email;通過URL獲取網頁;從獲取的網頁中解析HTML和XML文件;通過XML-RPC、SOAP和Telnet通信等。Python的庫使這一切變得相當簡單。
不僅如此,從網絡上還可以獲得很多使用 Python 進行 Internet 編程的第三方工具。例如, HTMLGen可以從Python類的描述中生成HTML文件;mod_python包可以使在Apache服務器上運行的Python程序更具效率,其支持Python Server Page這樣的服務器端模板;Jython系統提供了無縫的Python/Java集成,而且支持在客戶端運行的服務器端Applet。
此外,近些年出現了許多針對Python的Web開發工具包,例如Django、TurboGears、Web2py、Pylons、Zope 和 WebWare,它們使得 Python 能夠快速構建功能完善和高質量的網站。例如國內的豆瓣、果殼網等;國外的Google、Dropbox等。很多這樣的工具包包含了諸如對象關系映射器、模型/視圖/控制器架構、服務器端腳本和模板,以及支持Ajax等功能,從而提供了完整的、企業級的Web開發解決方案。
7.用戶圖形接口
Python的簡潔以及快速的開發周期十分適合開發GUI程序。Python內置了TKinter的標準面向對象接口Tk GUI API,使Python程序可以生成可移植的GUI(圖形化界面)。Python/Tkinter GUI不做任何改變就可以運行在微軟Windows、X Windows(UNIX和Linux)以及Mac OS(Classic和OS X都支持)等平臺上。同時,一個免費的擴展包PMW,為Tkinter工具包增加了一些高級部件。此外,基于C++平臺的工具包wxPython GUI API可以使用Python構建可移植的GUI。
諸如PythonCard和Dabo等一些高級工具包是構建在wxPython和Tkinter的基礎API之上的。通過適當的庫,你可以在Python中使用其他的GUI工具包。例如,通過PyQt使用Qt、通過PyGTK使用GTK、通過PyWin32使用MFC、通過IronPython使用.NET,以及通過Jython(Java版本的Python)使用Swing等。對于運行于瀏覽器中的應用或具有一些簡單界面需求的應用,Jython和Python Web框架以及服務器端CGI腳本都提供了其他的用戶界面的選擇。
8.嵌入和擴展
Python可以嵌入到其他應用程序中,也可以通過C/C++編寫擴展模塊,從而可以提高程序的運行速度,還能完成只有通過C/C++才能完成的工作。現在Python已經可以和C#相結合,并且結合到Visual Studio里邊,實現微軟的.Net思想。如果你會C語言,再學習Python,這將是一個非常棒的一種選擇。
如果你掌握了Python,想在Java里應用它,你可以采用Jython。Jython是采用Java語言實現的Python。這樣,你只要按照Python的語法,就可以調用Java的各種類庫,快速地編寫出基于Java的程序,也就是通過Jython編寫Java程序。這樣就可以更為快速地實現Java的功能。Python在面向對象方面和Java是相通的。
除了C/C++和Java,Python目前還可以和Delphi、VB結合。
9.組件集成
Python可以通過C/C++系統進行擴展,并能夠嵌套C/C++系統的特性,使其能夠作為一種靈活的黏合語言,可以腳本化處理其他系統和組件的行為。例如,將一個 C 語言庫集成到 Python中,能夠利用Python進行測試并調用庫中的其他組件;將Python嵌入到產品中,在不需要重新編譯整個產品或分發源代碼的情況下,能夠進行產品的單獨定制。
為了在腳本中更好地使用,當Python連接編譯好組件時,SWIG和SIP這樣的代碼生成工具可以讓這部分工作自動完成,并且CPython系統允許代碼混合到Python和類似C的代碼中。Python還提供了一些更大的框架,如基于微軟WindowsCOM的Python,基于Java實現的Jython,基于.NET實現的IronPython和各種CORBA工具包。此外,Python還提供了多種不同的腳本組件。例如,在Windows中,Python腳本可利用框架對微軟Word和Excel文件進行腳本處理。
10.企業、政務及教學輔助的應用
目前,Python已經成功地實現企業級應用,在全球已經有很多公司采用Python進行企業級軟件的開發和應用。同時,通過Python技術,成功地實現了許多政務應用。
另外,Python可以應用在教學活動中。用Python語言設計的教學輔助工具可以完成教學工作中重復性的工作,提高教學活動的工作效率。例如,可以利用Python語言編寫文件操作題的自動評卷程序、客觀題的評分工具和輔助完成主觀題的批量評分。
Python提供了豐富的API和工具,以便程序員能夠輕松地使用C、C++、Cython語言來編寫擴展模塊。在Google內部的很多項目使用C++編寫性能要求極高的部分,然后用Python調用相應的模塊。目前使用Python的企業如下。
?? Google在其網絡搜索系統中廣泛應用了Python,并且聘用了Python的創作者。
?? YouTube視頻的分享服務大部分是由Python編寫的。
?? Intel、Cisco、Hewlett-Packard、Qualcomm和IBM使用Python進行硬件測試。
?? Industrial Light & Magic(工業光魔公司,是著名的電影特效制作公司)等公司使用Python制作動畫電影。
?? 在經濟市場預測方面,JPMorgan Chase、UBS等金融機構使用了Python。
?? NASA、Los Alamos(洛斯阿拉莫斯國家實驗室)、Fermilab(費米實驗室)等使用Python實現科學計算任務。
?? IRobot使用Python開發了商業機器人真空吸塵器。
?? NSA(National Security Agency,美國國家安全局)在加密和智能分析中使用Python。
- HTML5+CSS3王者歸來
- Raspberry Pi for Secret Agents(Third Edition)
- Kotlin Standard Library Cookbook
- 劍指Java:核心原理與應用實踐
- INSTANT Yii 1.1 Application Development Starter
- 大話Java:程序設計從入門到精通
- Python從入門到精通(第3版)
- Photoshop智能手機APP界面設計
- Python物理建模初學者指南(第2版)
- 軟件設計模式(Java版)
- 精益軟件開發管理之道
- Lync Server Cookbook
- 計算機軟件項目實訓指導
- Java EE互聯網輕量級框架整合開發:SSM+Redis+Spring微服務(上下冊)
- Unity AI Game Programming(Second Edition)