百度雲盤:Python入門經典以解決計算問題為導向的Python編程實踐PDF高清完整版免費下載 提取碼:6e8d 內容簡介 《Python入門經典:以解決計算問題為導向的Python編程實踐》是一本系統而科學的Python入門教程,美國密歇根州立大學等多所美國知名高校採用其作為編程語言的入門教材, ...
百度雲盤: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 優先順序