Python程序設計與算法思維 Building Python Programs

Stuart Reges , Marty Stepp , Allison Obourn

  • 出版商: 機械工業
  • 出版日期: 2020-06-01
  • 定價: $834
  • 售價: 7.5$626
  • 語言: 簡體中文
  • 頁數: 615
  • 裝訂: 平裝
  • ISBN: 7111655141
  • ISBN-13: 9787111655145
  • 相關分類: Python程式語言
  • 此書翻譯自: Building Python Programs
  • 立即出貨 (庫存 < 3)

相關主題

商品描述

《Python程序設計與算法思維》詳盡地解釋了Python語言的每個新概念和每個語法細節,
具有良好的、規範的代碼示例,注重問題求解,強調算法實踐。
案例教學由簡單到復雜遞進展開,以便於讀者清晰地理解和掌握整個編程和求解的思路。
該書還增加了函數式編程內容,使初學者可以應對未來高並發實時多核處理的程序設計。
《Python程序設計與算法思維》對Python語言深入淺出、細緻的講解,
以及課後大量的習題和編程實踐,可以使初學者輕鬆掌握Python語言的精髓,
並學以致用,以解決科學研究、工程實踐中的實際問題,並切身體會程序設計之美。

目錄大綱

出版者的話
譯者序
前言
章Python編程簡介
1.1計算的基本概念
1.1.1為何編程
1.1.2硬件和軟件
1.1.3數字領域
1.1.4編程的過程
1.1.5為何選擇Python
1.1.6Python編程環境
1.2一個完整的Python程序
1.2.1打印輸出
1.2.2字符串文字(字符串)
1.2.3轉義序列
1.2.4打印複雜圖形
1.2.5註釋、空白和可讀性
1.3程序錯誤
1.3.1語法錯誤
1.3.2邏輯錯誤
1.4程序分解
1.4.1函數
1.4.2控制流
1.4.3標識符和關鍵字
1.4.4調用其他函數的函數
1.4.5運行時錯誤的例子
1.5案例研究:繪圖
1.5.1結構化版本
1.5.2沒有冗餘的終版本
1.5.3執行流分析
本章小結
自測題
習題
編程項目

第2章數據和確定循環
2.1基本數據概念
2.1.1數據類型
2.1.2表達式
2.1.3字面量
2.1.4算術運算符
2.1.5運算優先級
2.1.6混合和轉換類型
2.2變量
2.2.1使用變量的程序
2.2.2自增-自減運算符
2.2.3打印多個值
2.3for循環
2.3.1使用循環變量
2.3.2關於循環範圍的細節
2.3.3字符串乘法與打印部分行
2.3.4嵌套for循環
2.4管理複雜性
2.4. 1作用域
2.4.2偽代碼
2.4.3常量
2.5案例研究:沙漏圖
2.5.1問題分解和偽代碼
2.5.2初始結構化版本
2.5.3增加一個常量
本章小結
自測題
習題
編程項目

第3章參數與圖形
3.1參數
3.1.1參數的機制
3.1.2參數的
3.1.3多個參數
3.1.4參數與常量
3.1.5可選參數
3.2返回值
3.2.1math模塊
3.2.2random模塊
3.2.3定義返回值的函數
3.2.4返回多個值
3.3交互式程序
3.4圖形
3.4.1DrawingPanel簡介
3.4.2畫線和形狀
3.4.3顏色
3.4.4使用循環畫圖
3.4.5文本與字體
3.4. 6圖像
3.4.7畫圖過程分解
3.5案例研究:拋軌跡
3.5.1非結構化解決方案
3.5.2結構化解決方案
3.5.3圖形版本
本章小結
自測題
習題
編程項目

第4章條件執行
4.1if/ else語句
4.1.1關係運算符
4.1.2if/else語句嵌套
4.1.3if/else語句分解
4.1.4多個判別條件
4.2累積算法
4.2.1累積求和
4.2.2求小/大值循環
4.2. 3使用if語句的累積求和
4.2.4舍入誤差
4.3函數中的條件執行
4.3.1前置條件和後置條件
4.3.2拋出異常
4.3.3回顧返回值
4.3.4分支選擇推理
4.4字符串
4.4.1字符串方法
4.4.2按索引訪問字符
4.4.3字母和數值之間的轉換
4.4.4累積文本算法
4.5案例研究:基礎代謝率
4.5.1單人非結構化BMR解決方案
4.5.2雙人非結構化BMR解決方案
4.5.3雙人結構化BMR解決方案
4.5.4過程式設計啟發式
本章小結
自測題
習題
編程項目

第5章程序邏輯與不確定循環
5.1while循環
5.1.1尋找小因數的循環
5.1.2循環的啟動
5.2柵欄算法
5.2.1帶if語句的柵欄循環
5.2.2哨兵循環
5.2.3帶小/大值的哨兵循環
5.3布爾邏輯
5.3.1邏輯運算符
5.3.2布爾變量與標誌
5.3.3謂詞函數
5.3.4布爾Zen
5.3.5短路求值
5.4健壯的程序
5.4.1try/ecept語句
5.4.2處理用戶錯誤
5.5斷言與程序邏輯
5.5.1針對斷言的推理
5.5.2一個詳細的斷言示例
5.6案例研究:數字猜謎遊戲
5.6.1不帶提示的初始版本
5.6.2帶提示的隨機化版本
5.6.3健壯的終版本
本章小結
自測題
習題
編程項目

第6章文件處理
6.1文件讀取基礎知識
6.1.1數據和文件
6.1.2在Python中讀取文件
6.1.3基於行的文件處理
6.1.4文件結構與消耗式輸入
6.1.5提示輸入文件
6.2基於標記的處理
6.2.1數值輸入
6.2.2處理非法輸入
6.2. 3行與標記的混合使用
6.2.4處理不同數量的標記
6.2.5複雜的輸入文件
6.3不錯文件處理
6.3.1多行輸入記錄
6.3.2文件輸出
6.3.3從網頁中讀取數據
6.4案例研究:郵政編碼查詢
本章小結
自測題
習題
編程項目

第7章列表
7.1列表基礎知識
7.1.1創建列表
7.1.2訪問列表元素
7.1.3遍歷列表
7.1.4完整列表程序
7.1.5隨機訪問
7.1.6列表方法
7.2列表遍曆算法
7.2.1列表作為參數
7.2.2列表的查找
7.2.3替換與刪除值
7.2.4列表的逆序
7.2.5列表中數據的移動
7.2.6循環嵌套算法
7.2 .7列表推導
7.3引用語義
7.3.1值與引用
7.3.2修改列表參數
7.3.3空值
7.3.4可變性
7.3.5元組
7.4多維列表
7.4.1矩形列表
7.4.2鋸齒狀列表
7.4. 3像素列表
7.5案例研究:本福德定律
7.5.1統計值
7.5.2完成程序
本章小結
自測題
習題
編程項目

第8章字典與集合
8.1字典的基本概念
8.1.1創建字典
8.1.2字典作
8.1.3遍歷字典
8.1.4字典排序
8.2字典的不錯應用
8.2.1字典的統計
8.2.2嵌套的數據集合
8.2.3字典推導
8.3集合
8.3.1集合的基本概念
8.3.2集合作
8.3.3集合效率
8.3.4集合示例:彩票
本章小結
自測題
習題
編程項目

第9章遞歸
9.1遞歸思維
9.1.1一個非編程的示例
9.1.2從迭代到遞歸
9.1.3遞歸解決方案的結構
9.1.4反轉文件
9.1.5遞歸調用堆棧
9.2遞歸函數和數據
9.2.1整數的冪
9.2.2大公約數
9.2.3目錄爬蟲
9.3遞歸圖形
9.3 .1Cantor集
9.3.2Sierpinski三角形
9.4遞歸回溯
9.4.1向北/向東旅行
9.4.2八皇后問題
9.4.3在找到解後停止
9.5案例研究:前綴計算器
9.5.1中綴、前綴和後綴表示法
9.5.2計算前綴表達式
9.5.3完整程序
本章小結
自測題
習題
編程項目

10章搜索和排序
10.1搜索和排序庫
10.1.1二分查找
10.1.2排序
10.1.3洗牌
10.2程序複雜度
10.2.1實證分析
10.2.2複雜度類
10.3實現搜索和排序的算法
10.3.1順序搜索
10.3.2二分查找
10.3.3遞歸二分查找
10.3.4選擇排序
10.4案例研究:實現歸併排序
10.4.1拆分和合併列表
10.4.2遞歸歸併排序
10.4.3運行性能
10.4.4混合方法
本章小結
自測題
習題
編程項目

11章類與對象
11.1面向對象編程
11.1.1類和對象
11.1.2日期對象
11.2對象狀態和行為
11.2.1數據屬性
11.2.2初始化器
11.2.3方法
11.2.4訪問器和賦值器
11.2.5打印對象狀態
11.2.6對象相等與排序
11.3封裝
11.3.1封裝的目的
11.3.2私有屬性和屬性方法
11.3.3類不變性
11.4案例研究:股票類設計
11.4.1面向對象設計啟發式
11.4.2Stock屬性和方法頭
11.4.3Stock方法和屬性方法實現
本章小結
自測題
習題
編程項目

12章函數式編程
12.1函數式編程的概念
12.1.1副作用
12.1.2一等函數
12.1.3高階函數
12.1.4lambda表達式
12.2數據集合的函數作
12.2.1map函數
12.2.2filter函數
12.2.3reduce函數
12.2.4列表推導
12.3函數閉包
12.3.1生成器函數
12.3.2惰性求值
12.3.3可迭代對象
12.3.4生成器表達式
12.4案例研究:數值
12.4.1求和
12.4.2五個數值
12.4.3利用並發
本章小結
自測題
習題
編程項目
附錄APython摘要