百度雲盤:Python入門經典以解決計算問題爲導向的Python編程實踐PDF高清完整版免費下載程序員
提取碼:6e8d算法

內容簡介
《Python入門經典:以解決計算問題爲導向的Python編程實踐》是一本系統而科學的Python入門教程,美國密歇根州立大學等多所美國知名高校採用其做爲編程語言的入門教材,被奉爲經典。它不只從計算機教學和計算機科學的角度講解了初學者如何才能更有效地去學習Python,並且特別強調用Python解決生活中的實際問題,精心組織了大量來源於生活中不一樣領域的與數值計算和數據處理相關的案例。經過《Python入門經典:以解決計算問題爲導向的Python編程實踐》,讀者不只能系統掌握Python編程相關的知識,並且還能掌握利用Python處理各類與數據相關的問題。《Python入門經典:以解決計算問題爲導向的Python編程實踐》分爲五部分,第一部分介紹計算機設備的通常概念和一些計算機術語;第二部分開始介紹編程的基本知識,包括入門知識和控制語句,爲後續內容作鋪墊;第三部分講述數據結構和函數,包括字符串、列表和元組、字典和集合、文件、函數、算法和程序等進階內容,有助於讀者提高編程技能;第四部分重點介紹如何使用類定義數據結構和算法、開發程序等,培養讀者運用Python語言來實現基本的計算思想和策略的能力;第五部分主要介紹異常、測試和遞歸,旨在使讀者成爲更好的程序員。《Python入門經典:以解決計算問題爲導向的Python編程實踐》深刻淺出,每一章節均給出了大量的實例、示範代碼和自測練習,便於讀者理解和掌握相關知識。讀者經過學習《Python入門經典:以解決計算問題爲導向的Python編程實踐》,不只能掌握Python語言的基本知識,還能學習如何在實踐中運用該語言解決問題。編程
目錄
譯者序 前言 第一部分 關於計算機的思考 第0章 計算機科學研究 0.1爲何要研究計算機科學 0.1.1計算機科學的重要性 0.1.2計算機「科學」 0.1.3經過編程學習計算機科學 0.2編程的困難和使命 0.2.1困難1:同時作兩件事 0.2.2困難2:什麼是好程序 0.2.3程序的使命 0.3選擇一種計算機語言 0.3.1各類計算機語言 0.3.2爲何選Python 0.3.3Python是最好的程序語言嗎 0.4什麼是計算 0.5什麼是計算機 0.5.1天然界中的計算 0.5.2人類製造的計算機 0.6現代電子計算機 0.6.1就是開關 0.6.2晶體管 0.7從更高層面來了解現代計算機 0.8數據表示 0.8.1二進制數據 0.8.2使用二進制 0.8.3侷限性 0.8.4字符表示 0.8.5其餘數據表示 0.8.6數字表明什麼 0.8.7數據量 0.8.8數據量有多大 0.9後續章節概述 0.10總結 第二部分 開始編程 第1章 入門 1.1練習,練習,再練習 1.2快速入門——計算圓周長的程序 1.3交互式會話 1.4程序組成部分 1.4.1模塊 1.4.2表達式和語句 1.4.3空白 1.4.4註釋 1.4.5Python 的特殊元素:標記 1.4.6對象命名 1.5變量 1.6對象和類型 1.6.1數字 1.6.2其餘內置類型 1.6.3對象類型:非變量類型 1.6.4建立新值 1.7運算符 1.7.1整數運算符 1.7.2浮點運算符 1.7.3混合運算符 1.7.4運算符順序和圓括號 1.7.5加強的賦值運算符:快捷方式 1.8第一個模塊:math模塊 1.9開發算法 1.10總結 1.11視覺場景:海龜繪圖 習題 編程項目 第2章 控制語句 2.1選擇語句:if 2.1.1利用布爾值作決定 2.1.2if 語句 2.1.3示例:在籃球運動中,領先多少分才安全 2.1.4循環 2.1.5例子:尋找徹底數 2.1.6例子:對數字分類 2.2深刻控制語句 2.2.1真與假:布爾值 2.2.2布爾變量 2.2.3關係運算符 2.2.4布爾運算符 2.2.5優先級 2.2.6布爾運算符示例 2.2.7另外一種賦值方式 2.2.8用於斷定的選擇語句 2.2.9Python斷定語句進階 2.2.10循環:while語句 2.2.11信號量循環 2.2.12循環總結 2.2.13for語句進階 2.2.14嵌套 2.2.15冰雹序列示例 2.3視覺場景:用pylab對數據繪圖 2.3.1使用列表和第一次繪製 2.3.2更有趣的繪圖:正弦波 2.4計算機科學觀點:最小的通用計算 2.5總結 習題 編程項目 第3章 算法和程序開發 3.1什麼是算法 3.2算法特徵 3.2.1算法和程序 3.2.2細化 3.2.3有效性 3.2.4指定行爲 3.2.5通用算法 3.2.6真的能夠實現一切嗎 3.3程序是什麼 3.3.1可讀性 3.2.2魯棒性 3.3.3正確性 3.4程序設計策略 3.4.1參與並提交 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輸入 3.5.4計算 3.6總結 習題 第三部分 組織:數據結構和函數 第4章 字符串 4.1字符串類型 4.1.1三重引號字符串 4.1.2非顯示字符 4.1.3字符串表示形式 4.1.4字符序列 4.1.5索引和分片 4.2字符串操做 4.2.1鏈接(+)和重複(*) 4.2.2「+」何時表示加法運算,何時表示鏈接運算 4.2.3比較運算符 4.2.4in運算符 4.2.5字符串集合是不可變的 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.5字符串與控制語句 4.6處理字符串 4.6.1示例:記錄人名 4.6.2迴文 4.7示例:計算撲克牌 4.8總結 習題 編程項目 第5章 函數快速入門 5.1函數是什麼 5.2Python 函數 5.3函數控制語句 5.3.1函數控制語句詳解 5.3.2另外一個函數示例 5.3.3函數示例:猜詞 5.3.4函數調用函數 5.3.5何時使用函數 5.3.6若是沒有return語句會如何 5.3.7若是有多條return語句會如何 5.4視覺場景:用海龜繪圖法繪製美國國旗 5.5總結 習題 編程項目 第6章 列表和元組 6.1什麼是列表 6.2操做列表 6.2.1索引和分片 6.2.2運算符 6.2.3函數 6.2.4列表循環 6.3列表新內容 6.3.1列表可變性 6.3.2列表方法 6.4range、split及其餘函數和方法 6.4.1range、split和多重賦值 6.4.2使用join在列表和字符串之間轉換 6.4.3sorted 函數 6.5示例 6.5.1字謎 6.5.2示例:文件分析 6.6可變對象及其引用 6.6.1深拷貝與淺拷貝 6.6.2可變與不可變 6.7元組 6.7.1從列表到元組 6.7.2爲何須要元組 6.8列表:數據結構 6.8.1數據結構示例 6.8.2數據結構的另外一個示例 6.9算法示例:美國環境保護署通車裏程數據 6.10列表解析 6.11視覺場景:更多繪製任務 6.11.1numpy陣列 6.11.2繪製三角函數 6.12總結 習題 編程項目 第7章 深刻了解函數 7.1函數調用函數 7.2做用域 7.2.1實參、形參和命名空間 7.2.2傳遞可變對象 7.2.3返回複雜對象 7.2.4重構evens 7.3默認值以及形參爲關鍵字 7.3.1示例:默認值和參數關鍵字 7.3.2默認值問題 7.4函數和對象 7.5示例:肯定最終成績 7.5.1數據 7.5.2設計 7.5.3函數:weightedGrade 7.5.4函數:grade 7.5.5函數:main 7.5.6使用示例 7.6「傳值」或者「傳引用」 7.7總結 習題 編程項目 第8章 字典和集合 8.1字典 8.1.1字典示例 8.1.2Python 字典 8.1.3字典索引和賦值 8.1.4運算符 8.2單詞計數示例 8.2.1統計字符串中的單詞數 8.2.2《葛底斯堡演說》中的單詞出現頻率 8.2.3輸出和註釋 8.3示例:週期表 8.3.1使用CSV文件 8.3.2算法概述 8.3.3實現分治的函數 8.4集合 8.4.1集合的歷史 8.4.2集合的組成 8.4.3Python 集合 8.4.4Python集合的方法、運算符和函數 8.4.5集合方法 8.5集合應用 8.5.1不一樣文件中單詞之間的關係 8.5.2輸出和註釋 8.6做用域:完整的故事 8.6.1命名空間和做用域 8.6.2做用域搜尋規則 8.6.3局部命名空間 8.6.4全局命名空間 8.6.5內置模塊 8.6.6封閉式變量 8.7Python指針:使用zip建立字典 8.8視覺場景:詞頻條形圖 8.8.1正確獲取數據 8.8.2標籤和xticks命令 8.8.3繪圖 8.9總結 習題 編程項目 第9章 文件 9.1什麼是文件 9.2存取文件:讀取文本文件 9.2.1其餘文件存取方法 9.2.2數據流 9.3存取文件:寫文本文件 9.4在程序中存取文本文件 9.5建立文件和重寫文件 9.5.1通用新行格式 9.5.2文件內移動 9.6關閉文件 9.7CSV文件 9.7.1CSV模塊 9.7.2CSV Reader 9.7.3CSV Writer 9.7.4示例:更新某些成績 9.8示例:反覆提示,要求輸入正確的文件名 9.9模塊:os 9.9.1目錄/文件夾的結構 9.9.2os模塊函數 9.9.3os模塊示例 9.10總結 習題 編程項目 第10章 程序開發進階 10.1簡介 10.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.4makeTrainingSet函數 10.4.5makeTestSet函數 10.4.6trainClassifier函數 10.4.7第2輪修改後的trainClassifer 10.4.8用新數據測試分類器 10.4.9reportResults函數 10.5在完整數據上運行分類器 10.6其餘有趣的問題 10.6.1標籤雲 10.6.2標準普爾500預測 10.6.3用國旗預測宗教 10.7總結 習題 編程項目 第四部分 類:自定義數據結構和算法 第11章 類 11.1面向對象編程 11.1.1Python是面向對象的 11.1.2OOP特性 11.2使用OOP 11.3使用類和實例 11.3.1內置類和實例 11.3.2第一個類 11.3.3修改屬性 11.3.4實例和類之間的特殊關係:instance of 11.4對象方法 11.4.1使用對象方法 11.4.2編寫方法 11.4.3特殊參數self 11.4.4方法是類實例的接口 11.5融入Python類模型 11.5.1程序員定義的類 11.5.2Student類 11.5.3Python標準方法 11.5.4三種角色:類設計者、程序員和用戶 11.6示例:Point類 11.6.1構造函數 11.6.2距離 11.6.3兩點求和 11.6.4改進Point類 11.7Python和OOP 11.7.1封裝性 11.7.2繼承 11.7.3多態性 11.8Python和其餘OOP語言 11.8.1公有與私有 11.8.2使用雙下劃線表示私有 11.8.3Python的宗旨 11.8.4修改實例 11.9總結 習題 編程項目 第12章 類進階 12.1更多類屬性 12.2Python實現機制 12.2.1類、類型與自檢 12.2.2運算符重載 12.3自定義運算符重載 12.4建立有理數類 12.4.1生成類 12.4.2分數加法回顧 12.4.3分數加法 12.4.4相等和分數化簡 12.4.5應用分治 12.5錯誤消息 12.5.1自檢 12.5.2修復int+Rational錯誤 12.6繼承 12.6.1「尋找屬性」遊戲 12.6.2使用繼承 12.6.3實例:物理學標準模型 12.7總結 習題 第13章 使用類開發程序 13.1捕食問題 13.1.1規則 13.1.2面向對象的模擬 13.2類 13.2.1Island類 13.2.2捕食者和獵物、動物種類 13.2.3捕食者類和獵物類 13.2.4對象圖 13.2.5填充Island 13.3添加行爲 13.3.1細化:添加移動 13.3.2時間循環仿真 13.4逐步求精 13.4.1改進的時間循環 13.4.2繁殖 13.4.3進食 13.4.4時鐘節拍 13.5細化問題 13.5.1移動多少次 13.5.2動物數量的圖形化 13.6總結 習題 第五部分 成爲更好的程序員 第14章 異常和異常處理 14.1簡介 14.2基本的異常處理 14.3有關異常的哲學 14.4異常:else和finally 14.5異常的用法 14.5.1檢查輸入 14.5.2檢查文件打開 14.6深刻異常 14.6.1raise 14.6.2自定義異常 14.7示例:密碼管理 14.8總結 習題 第15章 測試 15.1爲何要進行測試 15.1.1錯誤類型 15.1.2「bug」和調試 15.2測試類型 15.2.1測試很難 15.2.2測試的重要性 15.3示例 15.3.1NBA效率 15.3.2基本算法 15.4混合測試 15.4.1捕捉用戶錯誤 15.4.2捕獲開發者犯的錯誤 15.5自動測試 15.5.1doctest 15.5.2其餘類型的測試 15.6總結 習題 第16章 遞歸:另外一種控制機制 16.1什麼是遞歸 16.2數學和兔子 16.3自定義遞歸:反轉字符串 16.4遞歸如何實現 16.4.1棧的數據結構 16.4.2棧和函數調用 16.5用遞歸表示圖形 16.5.1遞歸樹 16.5.2Sierpinski三角形 16.6從遞歸到非遞歸 16.7總結 16.8習題 附錄 附錄A 開始使用Python 附錄B 用海龜繪圖法進行簡單繪圖 附錄C 繪圖和數值工具:快速瀏覽 附錄D Python 3.0 附錄E ASCII碼錶 附錄F 優先級