- 寫給程序員的Python教程
- (挪)羅伯特·斯莫爾希雷 (美)奧斯汀·賓厄姆
- 2489字
- 2020-07-10 16:09:12
什么是Python
它是一門編程語言
Python是什么呢?簡單地說,Python是一門編程語言。它最初由Guido van Rossum于20世紀80年代末開發。Guido繼續積極參與并指導了語言的發展和演變,以至于他獲得了“仁慈的獨裁者(Benevolent Dictator for Life,BDFL)”的稱號。
Python是一個開源項目,你可以隨意下載和使用。
非營利性Python軟件基金會管理Python的知識產權,該組織在促進語言發展方面發揮著重要作用,并在某些情況下資助Python開發。
在技術層面上,Python是一門強類型的語言。這意味著語言中的每個對象都有一個確定的類型,通常沒有辦法規避該類型。同時,Python是動態類型的,這意味著在運行代碼之前,程序員無須對代碼進行類型檢查。這與靜態類型的語言(如C++或Java)相反,編譯器為你進行了大量的類型檢查,拒絕了濫用對象的程序。最終,Python使用鴨子類型,這是對Python類型系統的最貼切的描述,其中對象對上下文的適用性僅在運行時確定。我們將在第8章中更詳細地介紹這一點。
Python是一門通用編程語言。它不受限于任何特定的域或環境,可以有效地用于各種各樣的任務。當然還有一些領域,相比其他語言,Python不太適合,例如在極端的時間敏感或內存受限的環境中。但是在大多數情況下,Python與許多現代編程語言一樣靈活且可適應,甚至比大多數語言可能還要更好。
Python是一門解釋型語言。在技術上這樣說可能有點錯誤,因為Python在執行之前通常被編譯成特定格式的字節碼。但是,這個編譯是不可見的,在使用Python時,程序通常是立即執行代碼,而沒有明顯的編譯階段。編輯和運行之間沒有中斷,是使用Python的好兆頭之一。
Python的語法清晰、易讀,并且富有表現力。與許多流行的語言不同,Python使用空格來分隔代碼塊,并且在執行通用布局的過程中,會消除不必要的括號。這意味著所有Python代碼看起來都相似,你可以很快地學會閱讀Python。與此同時,Python的表達式語法意味著你可以在單行代碼中獲得很多信息。這種富有表現力且高可讀性的代碼意味著Python代碼的維護比較容易。
Python語言有多種實現。最初的并且仍然是最常見的實現是用C編寫的。這個版本通常被稱為CPython。當有人談論“運行Python”時,可以基本確定他們是在討論CPython,這也是我們將要在本書中使用的實現。
Python的其他實現:
- Jython,編寫運行于Java虛擬機之上的代碼;
- IronPython,編寫運行于.Net平臺之上的代碼;
- PyPy,用一種名為RPython的語言來編寫,它是為開發動態語言(如Python)而設計的。
這些實現通常落后于CPython,CPython被認為是Python語言的“標準”。在本書中你學到的大部分內容適用于所有這些實現。
Python語言的版本
現在,有兩種重要的Python語言版本被使用:Python 2和Python 3。這兩個版本代表了Python語言的一些關鍵元素的變化,而針對一個版本編寫的代碼通常不適用于另外一個版本,除非你采取了特殊的預防措施。Python 2比Python 3更古老、更成熟,但 Python 3解決了舊版本中的一些已知的缺點。Python 3是Python的明確未來,你應該盡可能地使用它。
雖然Python 2和Python 3之間存在一些關鍵的區別,但兩個版本的大部分基本原理是一樣的。如果你學習了一個版本,那么你所知道的大部分知識都適用于另一個版本。在本書中,我們將學習Python 3,但是我們會在必要時指出Python 2和Python 3之間的重要區別。
它是一個標準庫
除了作為一種編程語言,Python還提供了一個功能強大且用途廣泛的標準庫?!皟戎秒姵兀╞atteries included)”是Python哲學的一部分,這意味著你可以將Python立即用于現實世界中的許多復雜的任務,而無須安裝第三方軟件包。這不僅非常方便,而且意味著通過使用有趣的例子來開始學習Python是比較容易的——這也是本書的目標!
“內置電池”方法的另一個重要影響是,這意味著許多腳本甚至是一些復雜的腳本,都可以在任何安裝了Python的系統上立即運行。這樣可以清除一個常見的煩人障礙,即安裝軟件,你在使用其他語言時可能會面臨這個問題。
標準庫通常具有高水平的文檔。這些API有很好的文檔,并且模塊通常具有良好的敘述性說明文檔,包括快速入門指南、最佳實踐信息等。網上也提供了標準庫文檔,如果你需要,也可以將它安裝在本地。
由于標準庫是Python的重要組成部分,我們將在本書中介紹其中的部分內容。本書僅僅是涉獵了其中的一小部分,我們鼓勵你自己去進行探索。
它是一門哲學
最后,上面提到的那些關于Python的介紹都是不完整的,對許多人來說,Python代表了編寫代碼的哲學。清晰和易讀的原則是編寫正確或Python化的代碼的一部分。Python社區關心的是簡單性、可讀性和明確性等問題,這意味著Python代碼往往更加優雅!
許多Python的原則都體現在所謂的Python之禪中。“禪”不是一套硬性的規定,而是一組在編寫代碼時應該銘記于心的指南或者準則。當你發現自己試圖在幾個行動方案之間做出決定時,這些原則往往會給你一個正確的方向。我們將在本書中突出“Python之禪”中的元素。
千里之行
Python是一門偉大的語言,我們很高興能幫助你開始使用它。當你讀完本書的時候,你將能夠編寫大量的Python程序,并且將能夠閱讀更復雜的Python程序。更重要的是,你將擁有牢固的Python基礎,并了解該語言中的更高級的主題,希望本書能夠真正做到讓你對Python充滿激情。Python是一門大型語言,其內置以及周邊構成了龐大的軟件生態系統,它提供了一場真正可以探索一切的冒險之旅。
歡迎來到Python!
現在,越來越多的項目在開發之初就支持Python3,甚至只支持Python3。
這本書的誕生之路有些曲折。2013年,當我們整合了挪威的軟件咨詢和培訓業務的Sixty North公司時,我們受到Pluralsight(一家在線視頻培訓材料出版商)的邀請,為快速增長的MOOC市場制作Python培訓視頻。當時,我們沒有制作視頻培訓材料的經驗,但我們相信自己肯定能做好??紤]到某些限制,我們希望認真且謹慎地構思Python的介紹性內容。例如,我們希望只用很少的前向引用,因為這些對讀者來說是非常不方便的。我們都深信圖靈獎獲得者Leslie Lamport的那句格言——“如果你只想不干,那你也僅僅是在空想”。因此,我們自然而然地首先為視頻課程產品編寫了一個腳本。
很快,我們編寫、錄制好了在線視頻教程——Python基礎,并且由Pluralsight發布,該課程持續多年廣受好評。從一開始,我們就認定以這些腳本為基礎可以編寫出一本書,不過可以很公正地說,我們低估了將腳本中的內容轉換成一本好書所需的努力。
本書就是轉化的成果。它可以用作獨立的Python教程,也可以作為我們的視頻課程的輔助工具,這具體取決于最適合你的學習方式。本書是三部曲中的第一本,該系列還包括The Python Journeyman和The Python Master。后兩本書對應于我們以后的Pluralsight課程Python–Beyond the Basics和Advanced Python。(即將推出!)
- Java范例大全
- Android和PHP開發最佳實踐(第2版)
- 深入淺出Prometheus:原理、應用、源碼與拓展詳解
- jQuery EasyUI網站開發實戰
- 青少年軟件編程基礎與實戰(圖形化編程三級)
- 新手學Visual C# 2008程序設計
- Julia Cookbook
- JavaScript+Vue+React全程實例
- HTML5+CSS3網頁設計
- Learning Three.js:The JavaScript 3D Library for WebGL
- Spring Boot進階:原理、實戰與面試題分析
- 碼上行動:用ChatGPT學會Python編程
- Python機器學習算法: 原理、實現與案例
- SSM開發實戰教程(Spring+Spring MVC+MyBatis)
- Spring Boot+MVC實戰指南