前 言
根據TIOBE網站的排名,Python已超越C#,與Java、C、C 一起,成為全球前四大流行語言。IEEE發布的2017年編程語言排行榜則將Python排在榜首。
Python也是美國大學選用多的語言,著名的哈佛大學、麻省理工學院、加州大學伯克利分校、卡耐基·梅隆大學等,已將Python語言作為計算機專業和非計算機專業的入門語言。Python崇尚簡、短、精、小,其應用幾乎無限制,各方面地位超然。Python在軟件質量控制、提升開發效率/可移植性、組件集成、豐富的庫支持等方面,均處於先進地位。更重要的是,Python簡單易學、免費開源、可移植、可擴展、可嵌入。此外,Python還支持面向對像,而且它的面向對像甚至比Java和C#.NET更徹底。
Python是高“性價比”的語言。它合理地結合了高性能與低成本(代碼量小、維護成本低、編程效率高)的特色,致力於用簡潔、簡短的代碼完成任務。
完成同樣的業務邏輯時,在其他編程語言中可能需要編寫大量的代碼,而在Python中隻需要調用內建函數或內建對像的方法即可實現,甚至可以直接調用第三方擴展庫來完成。一般情況下,Python的代碼量僅僅是Java的1/5,足見Python編程的高效。
Python是應用“無限制”的語言。它被廣泛應用於後端開發、遊戲開發、網站開發、科學計算、大數據分析、雲計算、圖形開發等領域。美國中央情報局CIA網站、世界上的視頻網站YouTube、國內的問答社區“知乎”等,都是用Python開發的,搜狐、金山、騰訊、盛大、網易、百度、阿裡、淘寶、土豆、新浪、果殼等著名的IT公司都在使用Python完成各種各樣的任務。
Python是一種代表“簡單主義”思想的語言。它的設計哲學是優雅、明確、簡單。閱讀一個良好的Python程序,感覺就像是在閱讀英語,盡管這個英語的要求非常嚴格!Python的這種偽代碼本質,是它的優點之一。
Python是“高層次”的語言。它內建優異的數據結構,很容易表達各種常見的數據結構,不再需要定義指針、分配內存,編程也簡單了許多,也無須考慮程序對內存的使用等底層細節,把許多機器層面上的細節隱藏起來,凸顯出邏輯層面的編程思考。
Python是免費、開源、跨平臺的高級動態編程語言。它支持命令式編程、函數式編程,全面支持面向對像編程;它語法簡潔、清晰,擁有功能豐富而強大的標準庫和大量的第三方擴展庫;它使用戶能夠專注於解決問題,而不是去搞明白語言本身,這是它開發效率高的根本原因。
由此可見,用“出類撥萃”來形容Python並不為過。Python以如此眾多的優勢,吸引著無數程序員投身於其中。網上的一句流行語頗耐人尋味:“人生苦短,我用Python”。
在國外,“Python熱”正在逐步升溫,涉及方方面面的領域;在國內,越來越多的大學已將Python列入本科生的必修課程或選修課程,越來越多的IT企業將開發語言瞄向了Python。可以預見的是,國內的“Python熱”即將掀起,本書的出版迎合了這一趨勢。
本書的內容組織說明如下。
為了拓展應用範圍,充分利用現有資源,對於Python程序員而言,熟練運用第三方擴展庫是非常重要的。使用成熟的擴展庫,可以幫助我們快速地實現業務邏輯,達到事半功倍的效果。但是,第三方擴展庫的理解和運用,無疑要建立在對Python基礎知識和基本數據結構熟練掌握的基礎上。因此,本書兼顧“基礎”與“應用”兩個方面,前6章把重點放在基礎上,通過大量的經典例題,講解Python語言的核心內容;後6章則把重點放在應用上,通過大量的案例,介紹Python在實際開發中的應用。關於不同應用領域的第三方擴展庫,讀者可以參考附錄B,並結合自己的專業領域查閱相關文檔。
本書共分12章,主要內容組織如下。
第1章:Python程序設計入門。介紹什麼是Python,學習Python的原因,Python的發展歷史,多種平臺下Python環境的搭建,使用集成開發環境IDLE來幫助學習Python,Python常用的開發工具,後給出本書的個Python程序。
第2章:Python語言基礎。講解Python的語法和句法,Python的數據類型,Python的常量與變量,Python的運算符與優先級,Python的數值類型,Python的字符串類型,Python的高級數據類型(組、字典、集合),後介紹正則表達式及其應用。
第3章:Python流程控制。講解if語句和for語句的基本格式、執行規則、嵌套用法,range()函數在循環中的使用方法,while語句的基本格式、執行規則、嵌套用法,後介紹break、continue、pass等關鍵字在循環中的使用方法。
第4章:函數模塊。講解Python代碼編寫規範和風格,函數的定義與調用,函數參數的傳遞,Python變量作用域,函數與遞歸,迭代器與生成器,Python自定義模塊,輸入輸出語句的基本格式及執行規則,匿名函數的定義與使用。
第5章:文件與異常處理。介紹文件和文件對像,講解基於os模塊的文件操作方法,基於shutil模塊的文件操作方法,文本文件、CSV文件、Excel文件的基本操作,HTML、XML文檔的基本操作,後介紹Python的異常處理機制及Python程序的調試方法。
第6章:面向對像編程。介紹面向對像技術,講解類與對像的定義和使用,類的屬性與方法,類的作用域與命名空間,類的單繼承和多繼承,後以數個典型實例講解面向對像程序設計的應用。
第7章:數據庫編程。講解數據庫技術基礎,SQLite和MySQL數據庫的數據類型、基本操作,使用Python操作SQLite和MySQL數據庫的方法。
第8章:Web開發。講解Web應用的工作方式,MVC設計模式,CGI通用網關接口,使用模板快速生成Web頁面。
第9章:使用Python進行數據分析。講解使用Python進行數據挖掘的原因,介紹NumPy庫、SciPy庫、Matplotlib庫和Pandas庫,後通過數理統計中的數據離散度分析和數據挖掘中的離群點分析等典型案例,介紹Python在數據可視化方面的應用。
第10章:GUI編程和用戶界面。講解GUI界面的概念,Tkinter模塊及其各種組件,網格布局管理器,後介紹GUI編程。
第11章:多進程與多線程。介紹多進程與多線程的概念,講解多進程與多線程的區別,進程間通信技術,進程池,後介紹thread鎖。
第12章:網絡編程。講解計算機網絡基礎知識,Socket通信技術,urllib庫及其使用,端口掃描器,後以一個簡單的網絡爬蟲為例,對前幾章的知識進行綜合應用。
本書的特點是內容緊湊、案例豐富、學以致用;程序輸出原滋原味,既有正確輸出的結果,又有錯誤輸出的提示,讓讀者既能從“正”的方面學到經驗,又能從“負”的方面吸取教訓,使經驗與教訓兼而得之。全書總體內容按照先基礎、後應用的順序安排。前6章為基礎篇,其內容循序漸進;後6章為應用篇,其內容自成體繫;每個知識點按照先講解知識、後給出案例的順序編寫;每個軟件都配有安裝過程截圖,每道例題都配有運行結果截圖,一目了然。
本書作者具有近30年的程序設計教學經驗,講授過多門編程語言課程,並編寫過大量的應用程序,青年時期曾參加過市級講課大賽並取得優異成績,特別是在美國訪學期間,用Python語言開發過較大規模的軟件。在內容的組織和安排上,本書結合了作者多年教學與科研中積累的經驗,並巧妙地將其糅合到相應的章節中。
本書以目前流行的Python 3為基礎,適當兼顧Python 2.x,既講解Python的基礎知識,又適當介紹Python在各個方面的應用,因而,可以滿足不同層次讀者的需要。
本書可以作為高等院校計算機或非計算機專業程序設計語言公共課或選修課教材,基礎教學建議選取前6章內容,推薦36學時;“基礎 應用”教學建議按“6 n”方式選取教學內容,後面6章可根據專業需要擇其一二,或全部選用,推薦42~64學時。建議采用邊講邊練的教學模式。本書可以作為具有一定Python基礎的讀者進一步學習的資料,可供參加各類計算機考試的人員學習和參考,也可以作為從事數據分析、網絡運維、數據庫開發、Web開發、界面設計、軟件開發等工作的工程師的參考資料。對於打算利用業餘時間快樂地學習一門編程語言並編寫一些小程序來自我娛樂的讀者,本書是的學習資料。本書亦適合對編程有著濃厚興趣的中小學生作為課外閱讀資料。
本書由天津工業大學楊連賀、董禹龍、房超主編,該校畢璐琪、梁潤宇及天津市電子計算機研究所楊陽、湖南應用技術學院彭進香為副主編。限於作者的經驗和水平,書中的錯誤與不足之處在所難免,希望得到專家和讀者的批評指正。
本書編寫過程中,天津工業大學計算機科學與軟件學院碩士研究生張海潮和焦翠姣在程序調試方面做了很多工作,在此一並向她們表示衷心的感謝。
作 者
2018年5月於天津工業大學