●目 錄 * 1章 啟程 1* 2章 Python簡介 62.1 Pytho素 72.1.1 對像、表達式和數值類型 82.1.2 變量與賦值 92.1.3 Python IDE 112.2 程序分支 122.3 字符串和輸入 142.3.1 輸入 152.3.2 雜談字符編碼 162.4 迭代 17第3章 一些簡單的數值程序 203.1 窮舉法 203.2 for循環 223.3 近似解和二分查找 243.4 關於浮點數 273.5 牛頓 拉弗森法 29第4章 函數、作用域與抽像 314.1 函數與作用域 324.1.1 函數定義 324.1.2 關鍵字參數和默認值 334.1.3 作用域 344.2 規範 374.3 遞歸 394.3.1 斐波那契數列 404.3.2 回文 424.4 全局變量 454.5 模塊 464.6 文件 47第5章 結構化類型、可變性與高階函數 505.1 &nb組 505.2 範圍 525.3 列表與可變性 525.3.1 克隆 575.3.2 列表推導 575.4 函數對像 585.5 字組、範圍與列表 605.6 字典 61第6章 測試與調試 656.1 測試 656.1.1 黑盒測試 666.1.2 白盒測試 686.1.3 執行測試 696.2 調試 706.2.1 學習調試 726.2.2 設計實驗 726.2.3 遇到麻煩時 756.2.4 找到“目標”錯誤之後 76第7章 異常與斷言 777.1 處理異常 777.2 將異常用作控制流 807.3 斷言 82第8章 類與面向對像編程 838.1 抽像數據類型與類 838.1.1 使用抽像數據類型設計程序 878.1.2 使用類記錄學生與教師 878.2 繼承 908.2.1 多重繼承 928.2.2 替換原則 938.3 封裝與信息隱藏 948.4 進階示例:抵押貸款 99第9章 算法復雜度簡介 1039.1 思考計算復雜度 1039.2 漸近表示法 1069.3 一些重要的復雜度 1079.3.1 常數復雜度 1079.3.2 對數復雜度 1089.3.3 線性復雜度 1089.3.4 對數線性復雜度 1099.3.5 多項式復雜度 1099.3.6 指數復雜度 1119.3.7 復雜度對比 112* 10章 一些簡單算法和數據結構 11410.1 搜索算法 11510.1.1 線性搜索與間素 11510.1.2 二分查找和利用假設 11610.2 排序算法 11910.2.1 歸並排序 12010.2.2 將函數用作參數 12210.2.3 Python中的排序 12310.3 散列表 124* 11章 繪圖以及類的進一步擴展 12811.1 使用PyLab繪圖 12811.2 進階示例:繪制抵押貸款 133* 12章 背包與圖的* 優化問題 13912.1 背包問題 13912.1.1 貪婪算法 14012.1.2 0/1背包問題的* 優解 14312.2 圖的* 優化問題 14512.2.1 一些典型的圖論問題 14912.2.2 * 短路徑:深度優先搜索和廣度優先搜索 149* 13章 動態規劃 15513.1 又見斐波那契數列 15513.2 動態規劃與0/1背包問題 15713.3 動態規劃與分治算法 162* 14章 隨機遊走與數據可視化 16314.1 隨機遊走 16314.2 醉漢遊走 16414.3 有偏隨機遊走 17014.4 變幻莫測的田地 175* 15章 隨機程序、概率與分布 17815.1 隨機程序 17815.2 計算簡單概率 18015.3 統計推斷 18015.4 分布 19215.4.1 概率分布 19415.4.2 正態分布 19515.4.3 連續型和離散型均勻分布 19915.4.4 二項式分布與多項式分布 20015.4.5 指數分布和幾何分布 20015.4.6 本福德分布 20315.5 散列與踫撞 20415.6 強隊的獲勝概率 206* 16章 蒙特卡羅模擬 20816.1 帕斯卡的問題 20916.2 過線還是不過線 21016.3 使用查表法提高性能 21316.4 求π的值 21416.5 模擬模型結束語 218第* 章 抽樣與置信區間 22017.1 對波士頓馬拉松比賽進行抽樣 22017.2 中心極限定理 22517.3 均值的標準誤差 228第* 章 理解實驗數據 23118.1 彈簧的行為 23118.2 彈丸的行為 23818.2.1 可決繫數 24018.2.2 使用計算模型 24118.3 擬合指數分布數據 24218.4 當理論缺失時 245第* 章 隨機試驗與假設檢驗 24719.1 檢驗顯著性 24819.2 當心P-值 25219.3 單尾單樣本檢驗 25419.4 是否顯著 25519.5 哪個N 25719.6 多重假設 258第* 章 條件概率與貝葉斯統計 26120.1 條件概率 26220.2 貝葉斯定理 26320.3 貝葉斯更新 264第* 章 謊言、該死的謊言與統計學 26721.1 垃圾輸入,垃圾輸出 26721.2 檢驗是有缺陷的 26821.3 圖形會騙人 26821.4 Cum Hoc Ergo Propter Hoc 27021.5 統計測量不能說明所有問題 27121.6 抽樣偏差 27221.7 上下文很重要 27321.8 慎用外推法 27321.9 得克薩斯神槍手謬誤 27421.10 莫名其妙的百分比 27621.11 不顯著的顯著統計差別 27621.12 回歸假像 27721.13 小心為上 278第* 章 機器學習簡介 27922.1 特征向量 28122.2 距離度量 283第* 章 聚類 28823.1 Cluster類 28923.2 K-均值聚類 29123.3 虛構示例 29223.4 更真實的示例 297第* 章 分類方法 30324.1 分類器評價 30324.2 預測跑步者的性別 30624.3 K-* 鄰近方法 30824.4 基於回歸的分類器 31224.5 從“泰坦尼克”號生還 32024.6 總結 325Python 3.5速查表 326
內容簡介
本書基於MIT 編程思維培訓講義寫成,主要目標在於幫助讀者掌握並熟練使用各種計算技術,具備用計算思維解決現實問題的能力。書中以Python 3 為例,介紹了對中等規模程序的繫統性組織、編寫、調試,幫助讀者深入理解計算復雜度,還講解了有用的算法和問題簡化技術,並探討各類計算工具的使用。與本書* 1版相比,* 2版全面改寫了後半部分,且書中所有示例代碼都從Python 2 換成了Python 3。本書適合對編程知之甚少但想要使用計算方法解決問題的讀者。