Python 由 Guido van Rossum 於 1989 年年底開始設計與開發,個版本發行
於 1991 年。Python 推出不久就迅速得到了各行業人士的青睞,經過 30 多年的發展,
已經滲透到計算機科學與技術、統計分析、逆向工程與軟件分析、電子取證、圖形圖
像處理、人工智能、遊戲設計與策劃、網站開發、移動終端開發、大數據分析與處理、
深度學習、科學計算可視化、雲計算、網絡爬蟲開發、繫統運維、自然語言處理、密碼學、
電子電路設計、樹莓派應用開發等專業和領域。目前,Python 已經成為卡內基 - 梅隆
大學、麻省理工學院、加州大學伯克利分校、哈佛大學等國外很多大學計算機專業或
非計算機專業的程序設計入門教學語言,國內也有越來越多的學校開設了 Python 程序
設計課程。
Python 語言連續多年在 TIOBE 網站的編程語言排行榜上位於前十,並於 2007 年、
2010 年、2018 年、2020 年、2021 年 5 次被評為年度語言,於 2021 年 10 月首次登
上了的寶座,打破了 C 語言和 Java 語言 20 多年的壟斷地位,展現出強大的發展
勢頭。另外一個非常權威的 IEEE Spectrum 編程語言排行榜從 2017 年開始一直都把
Python 語言排在位。
Python 是一門免費、開源的跨平臺高級動態編程語言,支持命令式編程、函數式
編程,完全支持面向對像程序設計,語法簡潔清晰,擁有大量功能強大的標準庫和擴
展庫以及眾多狂熱的支持者,可以幫助各領域的科研人員或策劃師甚至管理人員快速
實現和驗證自己的思路與創意。Python 用戶可以把主要精力放在業務邏輯的設計與實
現上,不用過多考慮語言本身的細節,開發效率非常高,其精妙之處令人擊節嘆賞。
Python 是一門快樂的語言,學習和使用 Python 也應該是一個快樂的過程。與
C 語言繫列和 Java 等語言相比,Python 更加容易學習和使用,但這並不意味著可以
非常輕松愉快地掌握 Python。用戶熟練掌握和運用 Python 仍需要通過大量的練習來
鍛煉自己的思維和熟悉 Python 編程模式,同時還需要經常關注 Python 社區優秀的代
碼以及各種擴展庫的動態。當然,如果能夠適當了解 Python 標準庫以及擴展庫的
內部工作原理,對於編寫正確而優雅的 Python 程序無疑是有很大幫助的。
Python 是一門優雅的語言。Python 語法簡潔清晰,提供了大量的內置對像和內
置函數,編程模式非常符合人類的思維方式和習慣。在有些編程語言中需要編寫大量
代碼纔能實現的功能,在 Python 中僅需要調用內置函數或內置對像的方法即可實現。
如果讀者已有其他程序設計語言的基礎,那麼在學習和使用 Python 時,一定不要把其
他語言的編程習慣和風格帶到 Python 中,這不僅可能會使得代碼變得非常冗餘、煩瑣,
還可能會嚴重影響代碼的運行效率。應該盡量嘗試從自然、簡潔的角度出發去思
考和解決問題,這樣纔能寫出更加優雅、更加純正、更加 Pythonic 的代碼。
本書內容組織
對於 Python 程序員來說,能夠熟練運用各種擴展庫毫無疑問是非常重要的,使用
優秀、成熟的擴展庫可以幫助我們快速實現自己的業務邏輯和創意。但是也必須清楚
地認識到,Python 的內功是非常重要的,Python 語言基礎知識和基本數據結構的熟
練掌握是理解和運用其他擴展庫的條件之一。所以,本書前 11 章把重點和主要篇
幅放在 Python 編程基礎知識的介紹上,通過大量案例介紹 Python 在實際開發中的應
用,然後在後兩章介紹數據庫編程和 Python 在數據分析、數據處理與科學計算可視
化等領域的應用。關於其他應用領域的擴展庫可以參考本書後的附錄,並結合自己
的專業領域查閱相關文檔。全書共 13 章,主要內容組織如下。
第 1 章 Python 開發環境搭建與使用。介紹 Python 語言的特點,開發環境搭建
與使用,擴展庫的管理與使用,Python 代碼編寫規範和優化建議。
第 2 章 運算符、表達式與內置對像。講解 Python 對像模型,數字、字符串、列表、
第 3 章 Python 可迭代對像。講解組、字典、集合等序列的常用方法和
基本操作,切片操作,列表推導式,生成器表達式,序列解包。
第 4 章 程序控制結構。講解選擇結構,for 循環與 while 循環,帶 else 子句
的循環結構,break 與 continue 語句,選擇結構與循環結構的綜合運用。
第 5 章 函數。講解函數的定義與使用,普通位置參數、關鍵參數、默認值參數、
長度可變參數,全局變量與局部變量,參數傳遞時的序列解包,return 語句,lambda
表達式。
第 6 章 面向對像程序設計。講解類的定義與使用,self 與 cls 參數,類成員與
實例成員,私有成員與公有成員,特殊方法與運算符重載。
第 7 章 字符串。講解字符串編碼格式,字符串格式化、替換、分割、連接、排
版等基本操作方法及應用。
第 8 章 正則表達式。講解正則表達式語法、正則表達式對像、子模式與 Match
對像,以及 re 模塊的應用。
第 9 章 文件內容操作。講解文件操作基本知識與 Python 文件對像,文本文件
內容讀寫,二進制文件內容讀寫與對像序列化,Word、Excel 等常見二進制文件的內
容讀寫。
第 10 章 文件與文件夾操作。講解文件復制、移動、重命名、遍歷等文件級操作
以及文件夾操作有關知識。
第 11 章 異常處理結測試。講解 Python 異常類層次結構與自定義異常
類,不同形式的異常處理結構,測試。
第 12 章 SQLite 數據庫應用開發。講解 SQLite 數據庫的基本特點與用法,以
及 Python 對 SQLite 數據庫的操作方法。
第 13 章 數據分析、科學計算與可視化。講解 Python 標準庫 statistics 以及
NumPy、SciPy、Pandas、Matplotlib 等擴展庫的用法,講解數據處理、數據分析、
數據可視化以及科學計算的有關內容。
本書特色
本書全部案例代碼使用 Python 3.8/3.9 編寫,適當介紹了 Python 3.10/3.11
的新特性,大部分內容同樣適用於 Python 3.5.x 和 Python 3.6.x 等低版本。
信息量大、知識點密集。全書沒有多餘的文字和軟件安裝截圖,充分利用寶貴的
篇幅來介紹和講解盡可能多的知識點,物超所值。本書作者具有 20 多年程序設計
教學經驗,講授過彙編語言、C/C /C#、Java、PHP、Python 等多門程序設計語言,
並編寫過大量的應用程序。在本書內容的組織和安排上,結合了作者多年教學與開發
過程中積累的許多案例,並巧妙地糅合進了相應的章節。
案例豐富,實用性強,注釋量大。精選多個領域中的經典案例,每段代碼都配有
大量注釋,大幅縮短了讀者理解代碼所需要的時間。
語言精練,代碼優雅。使用精練的語言和代碼介紹 Python 語法和應用,完美詮
釋 Pythonic 真諦。
深度與廣度兼顧。本書對 Python 內部工作原理進行一定程度的剖析,並適當介紹
Python 代碼優化和安全編程的有關知識,可以滿足不同層次讀者的需要,讀者對書中
內容每多讀一遍都會有新的收獲和體會。
融素。在部分案例中融素,培養學生家國情懷、民族自豪感、
社會責任感以及工匠精神、創新精神等,寓育於教。隨書配套 114 個微課視頻,在講
解正文內容和代碼的同時,還適當進行了擴展和補充,比正文更精彩,一定不要錯過。
本書適用讀者
本書可以作為 ( 但不限於 ):
(1)會計、經濟、金融、心理學、統計、管理、人文社科以及其他非計算機專業研究生、
本科生或專科生的程序設計教材。如果作為本科生非計算機專業程序設計語言公共課
或選修課教材,建議采用 64 學時或 48 學時邊講邊練的教學模式。
(2)具有一定 Python 基礎的讀者的進階學習資料。
(3)打算利用業餘時間學習一門快樂的程序設計語言並編寫幾個小程序來快速解
決工作中問題的讀者的學習資料。
(4)少數對編程具有濃厚興趣和天賦的中學生的課外閱讀資料。
教學資源
本書適當融素,提供全套教學大綱、課件、源代碼、課後習題答案、考
試題庫、教學視頻、教案以及授課計劃和學時分配表,可以登錄清華大學出版社官方
網站 www.tup.com.cn 下載或與作者聯繫索取,作者的微信公眾號是“Python 小屋”。
本書第 2 版的配套 MOOC 可以在智慧樹和中國大學 MOOC 學習,搜索“董付國”可找到。
由於時間倉促,作者水平有限,書中難免存在疏漏之處,還請同行指正並通過作
者聯繫方式進行反饋。
感謝
首先感謝父母的養育之恩,在當年那麼艱苦的條件下還堅決支持我讀書,而沒有
讓我像其他同齡的孩子一樣輟學。感謝姐姐、姐夫多年來對我的愛護以及在老家對父
母的照顧,感謝善良的弟弟、弟媳在老家對父母的照顧,正是有了你們,我纔能在遠
離家鄉的城市安心工作。感謝我的妻子在生活中對我的大力支持,也感謝懂事的女兒
在我工作時能夠在旁邊安靜地讀書而盡量不打擾我,並在本書第 1 版定稿前和媽媽一
起幫我閱讀全書並檢查出了幾個錯別字。
感謝每一位讀者,感謝您在茫茫書海中選擇了這本書,衷心祝願您能夠從本書中
受益,學到您需要的知識 ! 同時也期待每一位讀者的熱心反饋,隨時歡迎指出書中的
不足 !
本書在編寫出版過程中得到清華大學出版社的大力支持和幫助,在此表示衷心的
感謝。
董付國
2022 年 8 月於山東煙臺