編程導論 — 以 Python 為舟, 2/e
[美]沙行勉
買這商品的人也買了...
-
$670$637 -
$800$760 -
$590$531 -
$980$774 -
$500$390 -
$620$484 -
$780$616 -
$356計算機科學導論——以Python為舟(第3版)
-
$474$450 -
$550$495 -
$537$510 -
$654$621 -
$1,134$1,077 -
$894$849
相關主題
商品描述
本書以大量的編程實例與作者多年編程實踐的體會來揭示編程的本質,系統性地指導讀者如何編程。書中所有代碼都用Python語言編寫,通過編程實例講解Python語言的所有知識點,使讀者在掌握編程思維和技巧(邏輯思維能力、計劃構建能力、循環計算能力、遞歸求解能力等)的同時,自然而然地熟練掌握Python語言。 本書既適合作為“程序設計基礎”“編程導論”“Python語言程序設計”等課程的教材,也適合作為參加編程競賽的、自學Python編程的中學生、大中專學生、程序員及普通讀者的參考用書。
目錄大綱
目錄
第1章初探編程之境
1.1電腦編程的基本概念
1.1.1編程如何解決問題
1.1.2解決雞兔同籠問題的編程思維
1.1.3解決排序與合並問題的編程思維
1.1.4解決過河問題的編程思維
1.1.5程序的基本要素
1.2乘Python之舟進入電腦語言的世界
1.2.1什麽是Python
1.2.2如何在Windows中使用Python
1.3解釋a=a+3
1.3.1介紹變量
1.3.2關於a=a+3
1.3.3常用算術運算符
1.4介紹數據類型
1.4.1布爾類型
1.4.2列表
1.4.3字符串
1.5學習Python的控制語句
1.5.1條件控制語句——if語句
1.5.2循環控制語句——for循環
1.5.3循環控制語句——while循環
習題
第2章鞏固編程基礎
2.1再談Python的循環控制語句
2.1.1遍歷加積累的循環結構
2.1.2以不同編程方式解決相同問題
2.1.3for與while循環的比較
2.1.4中國餘數定理的循環實現
2.2函數的簡介
2.2.1什麽是函數
2.2.2函數的創建與調用
2.2.3幾種常用的內置函數
2.3探討編程思路
2.3.1以多項式運算為例
2.3.2編程思路的總結
2.4討論循環中的一些技巧
2.4.1討論“for i in range(): ”結構
2.4.2討論“for e in L: ”結構
2.5活學活用——運行Python解決問題
2.5.1幾種簡單的排序算法及衍生問題
2.5.2二進制、十進制等進制之間的轉換問題
2.5.3撲克牌游戲——21點
2.5.4老虎機游戲
習題
第3章深談Python函數、變量、數據類型與輸入輸出
3.1深入瞭解函數的各種性質
3.1.1編寫完美函數
3.1.2參數與返回值
3.1.3局部變量與全局變量
3.1.4嵌套函數
3.1.5參數類型
3.2再談序列與字典數據類型
3.2.1列表與元組
3.2.2字符串
3.2.3字典
3.3關於Python數據類型的註意事項
3.3.1可變與不可變類型的討論
3.3.2參數的傳遞問題
3.3.3默認參數的傳遞問題(可選)
3.4深入探討列表的常用操作與開銷
3.4.1添加列表元素的討論
3.4.2刪除列表元素的討論
3.4.3生成列表的一些技巧
3.5輸入輸出、文件操作與異常處理
3.5.1輸入
3.5.2輸出
3.5.3文件操作
3.5.4異常處理
習題
第4章探究遞歸求解的思維方式
4.1理解遞歸求解的思維方式
4.1.1遞歸的基本思路
4.1.2遞歸求解的例子
4.2用遞歸方式重溫例題
4.2.1遞歸實現數列求和
4.2.2遞歸實現歸並
4.2.3遞歸求解因數分解
4.3list、string內置函數的非遞歸與遞歸實現
4.3.1列表內置函數的實現
4.3.2字符串內置函數的實現
4.4通過四種不同的遞歸方式解決排序問題
4.4.1選擇排序
4.4.2插入排序
4.4.3快速排序
4.4.4歸並排序
4.4.5四種排序方式的比較
習題
第5章熟練遞歸編程
5.1二分法求解問題
5.1.1什麽是二分法
5.1.2在有序序列中使用二分法查找元素位置
5.1.3求解算術平方根
5.1.4二分答案問題——木料加工
5.2求兩個數的最大公因數
5.2.1因數分解法求最大公因數
5.2.2歐幾里得算法求最大公因數
5.2.3討論因數分解法與歐幾里得算法的優劣
5.3中國餘數定理問題
5.3.1相關的基礎知識
5.3.2中國餘數定理問題的求解
5.4關於遞歸函數開銷的討論
5.4.1函數調用的開銷
5.4.2參數傳遞過程中的開銷
5.4.3重復計算的開銷
5.5用遞歸思維解決線性方程組問題
5.6用各種編程方式解決排列問題
5.6.1全排列問題
5.6.2通用排列問題
5.7用各種編程方式解決組合問題
5.7.1在排列問題的解法上解決組合問題(解法一)
5.7.2非遞歸方式解決組合問題(解法二)
5.7.3特殊二分方式解決組合問題(解法三)
5.7.4循環遞歸方式解決組合問題(解法四)
習題
第6章智能是計算出來的
6.1老鼠走迷宮問題
6.2菜雞狼過河問題
6.3AB猜數字游戲
6.424點游戲
6.5最後拿牌就輸
習題
第7章面向對象編程與小烏龜畫圖
7.1初識面向對象編程
7.1.1什麽是對象
7.1.2體會面向對象編程的優勢
7.2面向對象中的概念
7.2.1類與對象
7.2.2Python中的__init__()方法
7.2.3self變量和pass關鍵字
7.2.4Python中“公有”和“私有”類型的定義方式
7.3瞭解面向對象的三大特性
7.3.1封裝
7.3.2繼承
7.3.3多態
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.2深度優先搜索
8.2.1何為深搜
8.2.2圖的深搜
8.2.3拓撲排序問題
8.2.4一個有趣的迷宮例子
8.3最短路徑問題
8.3.1有向無環圖的最短路徑問題
8.3.2權值非負的有環圖的最短路徑問題
8.4動態規劃算法
8.4.1攔截導彈問題
8.4.2背包問題
8.4.3最短路徑問題
習題
第9章設計有趣的游戲
9.1開發環境介紹
9.2坦克大戰游戲的設計
9.2.1界面的創建
9.2.2類的實現
9.2.3圖像的顯示
9.2.4事件的處理
9.2.5文字的繪制
9.3五子棋游戲的設計
9.3.1五子棋游戲簡介
9.3.2繪制棋盤界面
9.3.3人人對弈模式
9.3.4人機對弈模式
9.3.5AlphaBeta剪枝搜索算法
習題
參考文獻