Python入門到進階,這本書有什麼不同?

實際上,Python並不是簡單的腳本語言,而是一個能支持大規模軟件開發的通用編程語言,其實現具有較高的執行效率。PSF的Python系統帶有一個很大的標準庫,提供了很多在實際開發中非常有用的功能。此外,全世界的開發者已經為Python開發了面向各種應用領域的大量專用程序包,例如面向圖形用戶界面的設計和編程,面向網絡應用、數值計算、數據統計和處理、圖形圖像處理、可視化等。針對所有重要應用領域,都可以找到相關的程序包,大大方便了人們用Python開發領域應用軟件和綜合性軟件的工作。

Python語言和標準庫的設計特別考慮了可擴充性,提供了豐富的接口和工具,使有經驗的程序員比較容易使用其他語言,例如C、C++、CPython(一種專門用於擴充Python的C語言工具)等編寫Python模塊,然後能像Python標準庫包一樣方便地使用。這種情況也使一些大公司把Python用作高級的**粘接語言**(glue language),用一些較低級的語言實現一批性能要求較高的完成具體工作任務的模塊,而後用Python實現整個系統的高層控制和調度。這樣做,既能獲得很好的開發效率,也有利於修改和擴充。

Python基金會提供最新版本的Python語言系統和基本開發環境,任何人都可以免費獲取。該系統可以在各種主流計算機和軟件平臺上運行,包含了豐富的標準程序庫和完整文檔。此外,也存在另外一些商業的或非商業的Python系統可供選擇。經過多年使用,全世界的Python開發者和使用者已經形成了一個活躍的專業社群,活躍在世界各地(包括中國),探討、交流學習和使用Python的經驗。互聯網有很多與Python有關的信息,有許多Python討論組。這些都促進了Python語言的學習和傳播。

當然,Python也不是完美無缺的(完美的語言並不存在),也有些缺點。還有一些使用需要注意的問題。後面討論中也會提到一些這方面的情況。

Python的應用情況

Python已經有了非常廣泛的實際使用。國際上的許多知名IT公司和機構以其作為主要開發語言,如美國的Google、Yahoo!、Dropbox等大公司,CERN(歐洲原子能研究中心)、NASA(美國國家航空航天局)等重要機構,還有大量較小的公司和機構。國內企業的應用正在發展,有較大影響的豆瓣網就是用Python開發的。

此外,全世界Python社區一直在努力,開發了許多適合各領域需要的Python包,這些工作也大大推動了Python的應用。例如,Python的科學計算專用擴展庫,包括NumPy(高效的數組數據處理)、SciPy(高性能數值運算)和matplotlib(數學繪圖庫)等。大量面向數據處理和計算的開源包也為Python使用提供了接口(可作為庫調用,支持Python應用開發),如著名的計算機視覺庫OpenCV、三維可視化庫VTK、醫學圖像處理庫ITK等。Python語言與這些庫結合,構成的開發環境很適合工程技術人員和科研人員處理實驗數據、製作圖表,以及開發科學和工程計算方面的應用程序。在應用系統領域,Python社群開發了一批支持網絡應用開發的Python庫和其他方面的庫及編程框架,這些工作和後續經驗的積累,已經使Python成為目前使用最多的應用系統開發語言之一。

Python還被廣泛用於複雜的和大規模的數據處理,成為目前人們在研究、開發大數據和人工智能等熱門發展方向時使用最多的語言之一。

Python系統和編程環境

本節簡單介紹PSF主導開發的CPython系統及其附帶的編程環境。對初學者而言,使用這個系統及其所帶的程序包就足夠了。一些開源社團或軟件廠商開發了更強大的開發環境,利用CPython的功能或其他Python實現。鑑於本書的基本設想和目標讀者群,這裡不準備涉及任何超出CPython系統的內容。有興趣的讀者可以自己學習。

Python是一種高級語言,具有易讀易用的形式。為了運行Python程序,需要有一個Python解釋器來填補Python源程序和計算機之間的鴻溝。PSF的Python系統(CPython,以下說Python系統時專指這個系統)的主要部分就是一個解釋器 。

下面以Windows系統中安裝Python的情況為例,在其他系統裡的安裝情況類似。從PSF網站或其他地方下載Python安裝文件,在所用計算機環境成功安裝後,通常可以看到快捷啟動方式。Python系統各部分的安裝位置、系統的啟動方式、啟動後窗口顯示的情況,在不同環境裡可能有些不同,但在功能上沒有本質差別。

以命令行方式啟動Python解釋器,啟動後的情況如圖1所示。解釋器顯示版本等信息,最後一行是**提示符**串`>>>`,可以在這裡輸入要求執行的命令(程序)。

Python入門到進階,這本書有什麼不同?

​圖 1 啟動Python解釋器後顯示的命令行窗口

Python解釋器採用解釋方式工作。一旦得到一個完整的程序單元,它就執行該單元並輸出結果,然後重複。後面還會介紹解釋器工作方式的一些細節。

CPython提供了一個程序開發環境IDLE,使程序員可以方便地編輯程序並隨時運行。啟動IDLE將看到一個窗口,頂部有標準的菜單條。圖2顯示了IDLE的解釋執行窗口的一個情況 ,可以看到解釋器的提示符。輸入一個程序單元(表達式或語句)後換行,解釋器就會執行它並顯示結果。這裡顯示的是執行3個表達式後的情況。第一個表達式要求計算1的值,解釋器給出1;第二個表達式要求計算1+2;第3個表達式要求計算2的1000次冪,得到的大整數輸出了幾行。

Python入門到進階,這本書有什麼不同?

​圖 2 啟動IDLE執行窗口(Shell)的情況

IDLE的另一種窗口是編輯器,如圖3所示。在這裡編輯的程序可以隨時運行。一個代碼單元稱為一個**模塊**,執行前需要保存為文件。Python術語中**模塊**和**程序文件**基本是同義詞,程序文件應該以py作為擴展名。

Python入門到進階,這本書有什麼不同?

IDLE窗口支持常規的編輯命令。與執行窗口相比,這裡多了Format和Run兩個菜單。Format裡的命令用於修改被編輯程序的格式。Run菜單用於啟動模塊執行,包括啟動(或激活)關聯執行窗口,調用解釋器檢查代碼的語法,從空環境開始執行所編代碼。運行時,解釋器逐一執行其中語句,代碼的標準輸入和輸出(常見的是用標準函數`input`和`print`)通過關聯的執行窗口實現。

IDLE的執行窗口還有一個Debug菜單,其中命令服務於程序調試,需要與編輯窗口配合使用。有關功能將在“附錄C”介紹。此外,運行IDLE時按F1功能鍵,或者通過Help菜單的相應選項,都能打開Python系統自帶的語言文檔。

用IDLE(或其他編輯器)開發的Python程序(模塊)可以脫離編輯器,直接交給Python解釋器執行。假設要執行的文件是prog.py,只需在命令行窗口中鍵入:

Python入門到進階,這本書有什麼不同?

​就能啟動Python執行該程序了[假設Python解釋器已在操作系統(OS)的命令路徑上]。

IDLE是一個簡單的開發環境,在開發複雜的應用系統時可以考慮用其他開發環境。有些通用開發環境帶有配合使用CPython的插件,例如Eclipse,可以在安裝插件後用於Python程序開發。

JetBrains公司的PyCharm是目前比較流行的一個專業開發環境,提供了很好的開發支持。由於Python程序文件的內容就是普通文本,完全可以用任何文本編輯器編輯開發。CPython的標準庫還提供了一些支持調試的包。

前面說過,CPython系統帶有一個標準庫,包含一大批程序包,系統文檔中包含了標準庫包的文檔。標準庫包的情況豐富多彩,有些包提供一些基礎功能,如數學函數、文件操作、文件輸入輸出、隨機數生成等。另一些包提供通用的編程服務功能,例如字符串處理、正則表達式、數據持久性、圖形用戶界面編程、併發編程、程序源文件組織等。一些包提供了某些特殊功能,如支持Web應用程序、媒體處理、加密解密等;還有一些支持程序開發、調試等。如果開發中需要某些功能,但語言沒提供,可以到標準庫中找找。

本書主要關注Python語言本身的編程問題,之後的討論將不涉及工具的使用。本書也不準備作為標準庫的使用手冊,對標準庫的介紹將限於書中討論Python語言基本功能和編程技術的需要。讀者可以查看CPython的自帶文檔或其他材料,找到更多信息。

除了基本的Python系統和標準庫程序包,一些個人、組織或公司也開發了許多第三方庫,或對一些有用的庫做了Python定製。有些庫已被廣泛使用,如支持圖形用戶界面開發的wxPython和PyQt。CPython推薦用自帶的庫安裝工具pip安裝其他庫和程序包,Python參考手冊中有說明。

Python入門到進階,這本書有什麼不同?

​《程序員學Python》

裘宗燕 著

本書是程序設計領域學者裘宗燕教授的潛心力作,程序員的Python入門和進階指南。書中全面介紹了Python語言的各方面特徵和應用技術,討論了準確理解Python、正確使用Python語言開發程序所需要的深入概念和情況,還介紹了用Python開發較大型或較複雜程序時應該瞭解的一些高級功能,如程序的模塊組織和導入系統,生成器、閉包和裝飾器,基本的和高級的面向對象編程機制和技術,以及作為Python最新擴展的協程和異步編程等。

此外,本書還提供完整的進階內容和對應案例,讓讀者全面深入地瞭解深度學習的知識和技巧,達到學以致用的目的。

Python入門到進階,這本書有什麼不同?


分享到:


相關文章: