Python編程導論 第2版 Introduction to Computation and Programming Using Python: With Application to Understanding Data

[美]約翰·谷泰格

買這商品的人也買了...

商品描述

本書基於MIT 編程思維培訓講義寫成,主要目標在於幫助讀者掌握並熟練使用各種計算技術,具備用計算思維解決現實問題的能力。書中以Python 3 為例,介紹了對中等規模程序的系統性組織、編寫、調試,幫助讀者深入理解計算復雜度,還講解了有用的算法和問題簡化技術,並探討各類計算工具的使用。與本書* 1版相比,* 2版全面改寫了後半部分,且書中所有示例代碼都從Python 2 換成了Python 3。
本書適合對編程知之甚少但想要使用計算方法解決問題的讀者。

作者簡介

John V. Guttag 
1999年~2004年任MIT電氣工程與計算機科學系主任,所授計算機科學系列導論課程深受學生歡迎。目前為計算機科學與人工智能實驗室網絡及移動系統組聯合負責人,還進行軟件工程、機器定理證明、硬件驗證等領域的研究以及培訓工作。獲美國布朗大學英語專業學士學位、應用數學碩士學位,多倫多大學計算機科學博士學位。

目錄大綱

* 1章啟程1 

* 2章Python簡介6 
2.1 Python基本元素7 
2.1.1對象、表達式和數值類型8 
2.1.2變量與賦值9 
2.1.3 Python IDE 11 
2.2程序分支12 
2.3字符串和輸入14 
2.3.1輸入15 
2.3.2雜談字符編碼16 
2.4迭代17 

第3章一些簡單的數值程序20 
3.1窮舉法20 
3.2 for循環22 
3.3近似解和二分查找24 
3.4關於浮點數27 
3.5牛頓拉弗森法29 

第4章函數、作用域與抽象31 
4.1函數與作用域32 
4.1.1函數定義32 
4.1.2關鍵字參數和默認值33 
4.1.3作用域34 
4.2規範37 
4.3遞歸39 
4.3.1斐波那契數列40 
4.3.2回文42 
4.4全局變量45 
4.5模塊46 
4.6文件47 

第5章結構化類型、可變性與
高階函數50
5.1元組50 
5.2範圍52 
5.3列表與可變性52 
5.3.1克隆57 
5.3.2列表推導57 
5.4函數對象58 
5.5字符串、元組、範圍與列表60 
5.6字典61 

第6章測試與調試65 
6.1測試65 
6.1.1黑盒測試66 
6.1.2白盒測試68 
6.1.3執行測試69 
6.2調試70 
6.2.1學習調試72 
6.2.2設計實驗72 
6.2.3遇到麻煩時75 
6.2.4找到“目標”錯誤之後76 

第7章異常與斷言77 
7.1處理異常77 
7.2將異常用作控制流80 
7.3斷言82 

第8章類與面向對象編程83 
8.1抽像數據類型與類83 
8.1.1使用抽像數據類型設計程序87 
8.1.2使用類記錄學生與教師87 
8.2繼承90 
8.2.1多重繼承92 
8.2.2替換原則93 
8.3封裝與信息隱藏94 
8.4進階示例:抵押貸款99
 
第9章算法複雜度簡介103
9.1思考計算複雜度103 
9.2漸近表示法106 
9.3一些重要的複雜度107 
9.3.1常數複雜度107 
9.3.2對數複雜度108 
9.3.3線性複雜度108 
9.3.4對數線性複雜度109 
9.3.5多項式複雜度109 
9.3.6指數複雜度111 
9.3.7複雜度對比112 

* 10章一些簡單算法和數據結構114 
10.1搜索算法115 
10.1.1線性搜索與間接引用元素115 
10.1.2二分查找和利用假設116 
10.2排序算法119 
10.2.1歸併排序120 
10.2.2將函數用作參數122 
10.2.3 Python中的排序123 
10.3散列表124 

* 11章繪圖以及類的進一步擴展128 
11.1使用PyLab繪圖128 
11.2進階示例:繪製抵押貸款133 

* 12章背包與圖的*優化問題139 
12.1背包問題139 
12.1.1貪婪算法140 
12.1.2 0/1背包問題的*優解143 
12.2圖的*優化問題145 
12.2.1一些典型的圖論問題149
12.2.2 *短路徑:深度優先搜索和
廣度優先搜索149 

* 13章動態規劃155 
13.1又見斐波那契數列155 
13.2動態規劃與0/1背包問題157 
13.3動態規劃與分治算法162 

* 14章隨機遊走與數據可視化163 
14.1隨機遊走163 
14.2醉漢遊走164 
14.3有偏隨機遊走170 
14.4變幻莫測的田地175 

* 15章隨機程序、概率與分佈178 
15.1隨機程序178 
15.2計算簡單概率180 
15.3統計推斷180 
15.4分佈192 
15.4.1概率分佈194 
15.4.2正態分佈195 
15.4.3連續型和離散型均勻分佈199 
15.4.4二項式分佈與多項式分佈200 
15.4.5指數分佈和幾何分佈200 
15.4.6本福德分佈203 
15.5散列與碰撞204 
15.6強隊的獲勝概率206 

* 16章蒙特卡羅模擬208 
16.1帕斯卡的問題209 
16.2過線還是不過線210 
16.3使用查表法提高性能213 
16.4求π的值214
16.5模擬模型結束語218 

第17章抽樣與置信區間220 
17.1對波士頓馬拉鬆比賽進行抽樣220 
17.2中心極限定理225 
17.3均值的標準誤差228 

第18章理解實驗數據231 
18.1彈簧的行為231 
18.2彈丸的行為238 
18.2 .1可決係數240 
18.2.2使用計算模型241 
18.3擬合指數分佈數據242 
18.4當理論缺失時245 

第19章隨機試驗與假設檢驗247 
19.1檢驗顯著性248 
19.2當心P-值252 
19.3單尾單樣本檢驗254 
19.4是否顯著255 
19.5哪個N 257 
19.6多重假設258 

第20章條件概率與貝葉斯統計261 
20.1條件概率262 
20.2貝葉斯定理263 
20.3貝葉斯更新264 

第21章謊言、該死的謊言與統計學267 
21.1垃圾輸入,垃圾輸出267 
21.2檢驗是有缺陷的268 
21.3圖形會騙人268 
21.4 Cum Hoc Ergo Propter Hoc 270 
21.5統計測量不能說明所有問題271
21.6抽樣偏差272 
21.7上下文很重要273 
21.8慎用外推法273 
21.9得克薩斯神槍手謬誤274 
21.10莫名其妙的百分比276 
21.11不顯著的顯著統計差別276 
21.12回歸假象277 
21.13小心為上278 

第22章機器學習簡介279 
22.1特徵向量281 
22.2距離度量283 

第23章聚類288 
23.1 Cluster類289 
23.2 K-均值聚類291 
23.3虛構示例292 
23.4更真實的示例297 

第24章分類方法303 
24.1分類器評價303 
24.2預測跑步者的性別306 
24.3 K-*鄰近方法308 
24.4基於回歸的分類器312 
24.5從“泰坦尼克”號生還320 
24.6總結325 
Python 3.5速查表326