本書詳盡而系統地介紹了Python語言程序設計的方方面面,通過大量的示例、偽代碼、流程圖和其他工具,使讀者更容易學習程序設計邏輯。本書清晰、簡明、友好的表述風格,可以讓讀者輕鬆掌握Python程序設計理論,快速投入實際開發中。
托尼•加迪斯(Tony Gaddis)在北卡羅來納州的海伍德社區學院講授“計算機程序設計語言”“作業系統”和“物理”課程。他在1994年被評為北卡羅來納社區學院的“年度佳教師”,並在1997年獲得“教學卓越獎”。Tony也提供對公司和機構(包括NASA的甘迺迪航太中心)的培訓。他著有《Starting Out with C++》和《Starting Out with Java》,並與人合著了《Starting Out with Visual Basic 2005》等。
本書詳盡而系統地介紹了Python語言程序設計的方方面面,通過大量的示例、偽代碼、流程圖和其他工具,使讀者更容易學習程序設計邏輯。本書清晰、簡明、友好的表述風格,可以讓讀者輕鬆掌握Python程序設計理論,快速投入到實際開發中。
本書特色
清晰、友好、易於理解的表達:簡明而有效的程序設計理論講解,循序而善誘。
豐富而簡明實用的樣例程式:包括突出特定程序設計主題的簡短示例, 以及更深入解決問題的程式。
每章提供一個或多個案例研究:提供一個具體問題的逐步分析, 並展示如何解決它。
第5版新增內容
增加了有關資料庫程序設計的新章節(第14章)。
解釋了清單解析、字典解析和集合解析。
增加了新的字串知識,包括f字串、字串權杖、相鄰字串的隱式連接,以及讀取和解析CSV檔的新示例。
增加了新的GUI程序設計知識,包括為控制項添加邊框、內部和外部填充、清單方塊控制項和捲軸等。
針對龜圖增加了用於讀取帶有對話方塊的用戶輸入的兩個命令。
引入了隨機選擇清單元素的相關函數。
增加了新函數知識,包括對pass關鍵字、None值的討論等。
本書面向程序設計零基礎的初學者,使用Python語言來講授程序設計概念和解決問題的方法。通過易於理解的示例、偽代碼、流程圖和其他工具,學生可以學習如何設計程式的邏輯,以及如何使用Python實現程式。本書是非常理想的程序設計入門課程的教材,也適合作為以Python為語言的程序設計邏輯與設計課程的教材。
本書的特點是其清晰、友好、易於理解的描述。此外,它有著豐富而簡明實用的示例程式,包括突出特定程序設計主題的簡短示例,以及解決更深入問題的程式。每章提供一個或多個案例研究,對具體問題進行逐步分析,並展示如何解決它。
先控制結構,然後類
Python是一種完全物件導向的程序設計語言,但是讀者不必在開始程序設計時就去理解物件導向的概念。本書首先介紹資料存儲、輸入和輸出、控制結構、函數、序列和清單、檔I/O以及從標準類庫中創建物件等基礎知識,然後介紹如何編寫類,探索繼承和多態性,並學習編寫遞迴函數。最後介紹如何開發簡單的事件驅動的GUI應用程式。
第5版的變化
本書清晰的寫作風格和以前的版本一樣。然而,本版也做了許多補充和改進,總結如下:
資料庫程序設計—增加了有關資料庫程序設計的新章節(第14章),介紹SQL和SQLite上的Python資料庫程序設計。
解析運算式—解釋了清單解析、字典解析和集合解析。
更新的字串知識—添加了新的字串知識,包括:
使用Python 36引入的f-string來顯示格式化輸出。f-string使用簡潔直觀的語法,比format函數更容易學習。format函數的材料已移至附錄F。
第8章增加了對字串token的討論。
第8章添加了讀取和解析CSV文件的新示例。
擴展了第2章中對字元串連接的討論,包含了相鄰字串的隱式連接。
GUI程序設計—第13章添加了新的GUI程序設計知識,包括:
為控制項添加邊框。
內部和外部填充。
清單方塊控制項和捲軸。
龜圖—引入了用於讀取帶有對話方塊的用戶輸入的兩個命令:
turtlenuminput。
turtletextinput。
隨機選擇清單元素—在第7章引入了randomchoice()函數,用於隨機選擇清單元素。
新函數知識—第5章添加了一些新知識,包括:
引入了pass關鍵字。
擴展了對None值的討論,解釋了為什麼函數可能返回None。
採用了有條件執行main函數的標準做法。
各章概覽
第1章:計算機與程序設計
本章首先對計算機的工作方式、資料的存儲和操作方式以及使用高階語言編寫程式的原因進行非常具體且易於理解的解釋。本章還介紹了Python、交互模式、腳本模式和IDLE。
第2章:輸入、處理與輸出
本章介紹程式的開發週期、變數、資料類型和使用順序結構編寫的簡單程式。學生可以學習如何編寫簡單的程式:從鍵盤讀取輸入、執行數學運算並輸出到螢幕上。本章還對虛擬碼和流程圖等設計程式的工具進行了介紹。本章最後介紹了機器龜圖形庫。
第3章:選擇結構與布林邏輯
本章介紹關係運算子和布林運算式,並展示如何使用選擇結構控制程式流程,涉及if、if-else和if-elif-else語句,還討論了嵌套選擇結構和邏輯運算子。本章最後討論了如何使用選擇結構測試機器龜的狀態。
第4章:迴圈結構
本章展示如何使用while迴圈和for迴圈創建迴圈結構,討論了計數器、累加器和標記,以及編寫輸入驗證迴圈的技術。本章最後介紹了如何使用迴圈和機器龜圖形庫進行繪圖設計。
第5章:函數
本章首先介紹如何編寫和調用void函數,展示了使用函數對程式進行模組化的好處,並討論了自頂向下的設計方法。然後,介紹如何將參數傳遞給函數,討論了常見的庫函數,如生成亂數的函數。在學習了如何調用庫函數並使用其返回值之後,講解如何定義和調用自己的函數。接下來介紹如何使用模組來組織函數。本章最後討論了如何使用函數模組化機器龜圖形庫代碼。
第6章:檔和異常
本章介紹順序檔的輸入和輸出,學習如何讀取和寫入大量資料,並將資料存儲為欄位和記錄。本章最後討論異常,並演示了如何編寫異常處理的代碼。
第7章:列表和元組
本章介紹Python中序列的概念,探討兩種常見Python序列—列表和元組的使用,學習使用清單進行類似陣列的操作,例如在清單中存儲物件、遍歷清單、搜索清單中的元素以及計算清單中元素的總和和平均值。本章討論了列表解析運算式、切片和許多列表方法,涉及一維和二維列表。本章還包括對matplotlib包的討論,以及如何使用它根據清單繪製圖表。
第8章:深入字串
本章介紹如何更加細緻地處理字串,討論遍歷字串中各個字元的字串切片和算法,並介紹用於字元、文本處理的內置函數和字串方法。本章還包括token化字串和解析CSV檔的示例。
第9章:字典和集合
本章介紹字典和集合資料結構,學習將資料存儲為字典中的鍵值對、檢索值、更改現有值、添加新鍵值對、刪除鍵值對以及編寫字典解析。接下來討論如何將值存儲為集合中的唯一元素,並執行常見的集合操作,例如並集、交集、差集和對稱差集,還討論了集合解析。最後對物件序列化進行了討論,並介紹了Python pickle模組。
第10章:類與物件導向程序設計
本章比較面向過程和物件導向的程序設計實踐,涵蓋了類和物件的基本概念,並討論了屬性、方法、封裝和資料隱藏、_?_init_?_函數(類似於構造函數)、訪問器、賦值器,學習如何使用UML對類進行建模,以及如何在特定問題中查找類。
第11章:繼承
本章繼續學習繼承和多態,所涉及的主題包括超類、子類以及_?_init_?_函數在繼承、方法覆蓋和多態中的工作方式。
第12章:遞迴
本章討論遞迴及其在問題求解中的應用,給出了遞迴呼叫的可視化跟蹤和遞迴應用,展示了許多工的遞迴算法,例如查找因數、求最大公約數、對列表中的一系列值求和,並給出了經典漢諾塔的例子。
第13章:GUI程序設計
本章討論使用Python的tkinter模組設計GUI應用程式的基本方法,包括標籤、按鈕、輸入域、選項按鈕、核取方塊、清單方塊和對話方塊等基本控制項,還學習了GUI應用程式中事件的工作方式以及如何編寫回呼函數來處理事件。本章包括對Canvas控制項的討論,以及如何使用它來繪製直線、矩形、橢圓、弧、多邊形和文本。
第14章:資料庫程序設計
本章介紹資料庫程序設計。首先介紹資料庫的基本概念,如表、行、主鍵等。然後學習使用SQLite在Python中連接資料庫。接下來介紹SQL以及如何執行查詢和語句來搜索行、添加新行、更新現有行和刪除行。最後演示CRUD應用程式,討論了關係資料。
附錄A:Python安裝
本附錄解釋如何下載和安裝Python最新版。
附錄B:IDLE簡介
本附錄概述Python附帶的IDLE整合式開發環境。
附錄C:ASCII字元集
作為參考,本附錄列出了ASCII字元集。
附錄D:預定義顏色
本附錄列出了可與機器龜圖形庫、matplotlib和tkinter一起使用的預定義顏色名稱。
附錄E:import語句詳解
本附錄討論使用import語句的各種方法。例如,可以使用import語句導入模組、類、函數或為模組分配別名。
附錄F:使用format()函數格式化數值輸出
本附錄討論format()函數,展示了如何使用其格式說明符來控制數值的顯示方式。
附錄G:使用pip工具安裝模組
本附錄討論如何使用pip實用工具從Python包索引(PyPI)安裝協力廠商模組。
附錄H:檢查點參考答案
本附錄給出了正文中出現的檢查點問題的答案。
本書的組織
本書以循序漸進的方式講授程序設計。每一章都包含一組主題,既可以很容易地按照現在的章節順序進行講授,也可以有一定的靈活性,從而按照希望的順序進行教學安排。圖P-1顯示了章節之間的依賴關係,箭頭指明講授某章節之前必須覆蓋的章節。
圖P-1 章節依賴關係
本書特點
概念 每個主要節都從概念開始。
示例程式 每章都有大量完整和部分的示例程式,旨在突出當前主題。
聚光燈 每章都有一個或多個聚光燈案例研究,提供詳細的、循序漸進的問題分析,並展示如何解決它們。
注 貫穿全書,對有趣的或經常被誤解的上下文相關的主題進行簡短的解釋。
提示 提供解決不同程序設計問題的最佳技術。
警告 提醒學生注意可能導致程式出現錯誤或資料丟失的程序設計技術或實踐。
檢查點 貫穿全書,在學習新主題後快速檢查學生的掌握情況。
複習題 位於每章末,包括多項選擇題、判斷題、算法工作室、簡答題和程序設計題。
補充材料
學生在線資源
以下資源可在wwwpearsonhigheredcom/cs-resources上找到:
每個示例程式的原始程式碼
本書的配套視頻注釋
教師資源
所有複習題的答案
PPT
測試題庫
掃描二維碼可獲得的中文材料
本書採用一書一碼的方式,即一本書對應一個專有的二維碼(見本書前面的襯紙)。掃描二維碼獲取閱讀許可權後,可流覽以下電子資料資源。
第11章 繼承
第12章 遞迴
第13章 GUI程序設計
第14章 資料庫程序設計
附錄A Python安裝
附錄B IDLE簡介
附錄C ASCII字元集
附錄D 預定義顏色
附錄E import語句詳解
附錄F 使用format()函數格式化數值輸出
附錄G 使用pip工具安裝模組
附錄H 檢查點參考答案
未來我們還可能通過該二維碼提供更多的增值服務,例如習題答案、教師的授課視頻等。
致謝
感謝下列評審人員的專業建議:
感謝海伍德社區學院的教職員工和管理人員,感謝他們讓我有機會教授我所熱愛的學科。還要感謝家人和朋友對我所有項目的支持。
本書能被培生出版是我莫大的榮幸,非常幸運有Tracy Johnson作為我的編輯和內容經理。她和她的同事Holly Stark、Erin Sullivan、Alicia Wilson、Scott Disanno、Carole Snyder、Bob Engelhardt、Aishwarya Panday不知疲倦地製作和推廣這本書。謝謝大家!
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。