認識編程——以Python語言講透編程的本質

認識編程——以Python語言講透編程的本質

《認識編程——以Python語言講透編程的本質》是2021年機械工業出版社出版的圖書。

基本介紹

  • 中文名:認識編程——以Python語言講透編程的本質
  • 作者:郭屹
  • 出版時間:2021年
  • 出版社機械工業出版社
  • ISBN:9787111687610
本書是關於計算機編程的科普書,它包含了計算機軟體的發展歷史、原理、數據結構,以及基本算法等內容,並進一步探討了動態規劃、機率統計和神經網路等進階知識。作者通過輕鬆的筆調,由淺入深地對編程的本質進行了直觀、具體的討論。雖然書中的例子都是用Python編寫的,但是介紹的編程方法和思想卻是通用的。書中的實例都有對應的完整代碼實現,涉及初等數學、數據結構、排序與查找、數理統計、動態規劃及神經網路等多個方面。這些實例把編程原理講解和程式代碼結合在一起,從而讓概念更加容易理解。
本書適合學習Python,以及編程的讀者閱讀。
目 錄
前言
第1章 程式、數字與進制1
1.1 概述1
1.2 何謂程式?1
1.3 計算機只有兩根手指?3
1.3.1 為什麼偏偏是二進制?3
1.3.2 計算機與十進制4
1.4 Python怎么掰手指?4
1.5 Python語言入門5
第2章 計算機內部探秘8
2.1 計算機本來就叫計算機8
2.2 化計算為加法9
2.2.1 從國小的1 1開始9
2.2.2 計算機的移位操作10
2.2.3 不單單是乘除法實現12
2.3 進制轉換及數據存儲14
2.3.1 進制的轉換14
2.3.2 計算機如何存儲數據?15
2.3.3 形象一點來看電晶體16
2.3.4 抽象一點來看數據存儲邏輯19
2.3.5 字元的編號20
2.4 從加法到晶片20
2.4.1 萬法歸加法20
2.4.2 自己做個加法器21
2.5 101頁報告改變了世界23
2.5.1 又笨又快的圖靈機23
2.5.2 從101頁報告到極簡計算機25
2.5.3 跟著“極簡”執行代碼26
第3章 編程基礎概念31
3.1 計算機的外包裝31
3.2 計算機的高級語言32
3.3 Goto語句有害33
3.4 說說數據結構34
3.5 面向對象編程36
3.5.1 什麼是面向對象編程?36
3.5.2 Python的混合編程36
3.6 進程與執行緒37
3.7 遞推與遞歸38
3.8 關於分治39
3.9 算法及性能分析39
第4章 數學與編程是一家41
4.1 什麼是函式?41
4.1.1 先算一個階乘41
4.1.2 往前走一步—求平方根43
4.1.3 再往前走一步—求階乘的
平方根46
4.1.4 Python常見的庫49
4.2 面向對象編程,再來求一求
素數50
4.2.1 捋清思路50
4.2.2 過程執行52
4.2.3 驗證哥德巴赫猜想53
4.2.4 驗證與證明55
4.3 遞歸,還記得斐波那契數列嗎?55
4.3.1 斐波那契數列55
4.3.2 生活中的斐波那契數列56
4.3.3 用遞歸重寫階乘57
4.4 深入遞歸,漢諾塔問題58
4.4.1 漢諾塔傳說58
4.4.2 塔也是遞歸,遞歸也是樹59
4.5 Python解方程61
4.5.1 二次方程61
4.5.2 高次方程63
4.5.3 Python解同餘方程64
4.6 Python用劉徽割圓術求面積66
4.6.1 劉徽割圓術求面積66
4.6.2 進入遞推,交給Python68
4.7 跟著Ada計算伯努利數
(向Ada致敬)70
4.7.1 分析計算伯努利數70
4.7.2 為什麼要向Ada致以敬意?72
第5章 字元處理73
5.1 先來談談字元編碼73
5.1.1 首先是Unicode73
5.1.2 有了Unicode還不夠74
5.2 Python如何操作字元串75
5.2.1 豐富的字元串操作75
5.2.2 開始造個輪子76
5.3 凱撒密碼(Caesar cipher)78
5.4 字元串查找(KMP算法)80
5.4.1 從笨的方法開始80
5.4.2 聰明一點的方法83
5.5 Python如何操作檔案88
5.5.1 操作檔案的方式88
5.5.2 簡單地演練一下88
5.6 JSON是誰90
5.6.1 JSON對象90
5.6.2 解析JSON91
5.6.3 解析複雜JSON93
5.7 關於正則表達式95
5.7.1 正則表達式的功用95
5.7.2 正則解釋器97
5.7.3 正則表達式的套用99
第6章 數據結構103
6.1 Python的序列103
6.1.1 ArrayList和LinkedList操作103
6.1.2 首先是ArrayList104
6.1.3 接下來是LinkedList107
6.2 關於棧—先進後出112
6.3 括弧如何匹配114
6.4 數學表達式解析115
6.4.1 計算機讀取數學表達式115
6.4.2 獲取運算元與操作符序列116
6.4.3 開始計算119
6.5 關於HashMap121
6.5.1 Python中的字典操作121
6.5.2 手動做HashMap122
6.5.3 增刪改查123
6.5.4 HashMap遍歷127
6.5.5 成果驗收128
6.6 樹之遍歷130
6.6.1 先構建一棵二叉樹130
6.6.2 再遍歷二叉樹131
6.6.3 換一種方式遍歷133
6.7 樹之構建和查找134
6.7.1 還是先構建樹134
6.7.2 然後查找特定元素136
6.7.3 讓樹更加泛用137
6.8 平衡樹(AVL算法)138
6.8.1 平衡二叉樹138
6.8.2 平衡二叉樹增加節點140
6.8.3 不平衡就旋轉142
6.9 圖的表示146
6.10 拓撲排序148
6.11 短路徑(Dijkstra算法)151
6.12 關鍵路徑CP154
第7章 查找與排序160
7.1 查字典—冒泡排序160
7.2 每次吃甜的葡萄—選擇
排序161
7.3 抓牌看牌—插入排序162
7.3.1 先來描述一下場景162
7.3.2 進入Python162
7.4 向左向右看齊—快速排序164
7.4.1 先來分而治之164
7.4.2 開始編寫快速排序程式166
7.5 先分叉再排序—堆排序167
7.5.1 先理解堆排序思路167
7.5.2 Python的時間169
7.6 不會淘汰的季後賽—歸併
排序170
7.7 以上排序的比較172
7.8 插入排序2.0—希爾排序173
7.9 桶排序—計數排序174
7.10 二分查找(試著做一個字典)176
第8章 動態規劃182
8.1 遊戲幣貪心算法—DP導入182
8.1.1 遊戲幣的動態規劃182
8.1.2 隨機數字三角的動態規劃184
8.2 序列的公約數—LCS186
8.3 基因序列比對(Levenshtein
算法)187
8.4 背包問題192
8.4.1 背包問題解析192
8.4.2 開始變成程式194
第9章 數理統計與人工智慧196
9.1 人均收入統計196
9.1.1 先從數據出發196
9.1.2 進入程式世界198
9.1.3 來看點經濟學(基尼係數)199
9.2 用貝葉斯公式智慧型診斷201
9.2.1 先來談談機率201
9.2.2 “智慧型醫生”的訓練202
9.3 預

相關詞條

熱門詞條

聯絡我們