Python編程零基礎入門 Get Programming: Learn to code with Python
[美]安娜·貝爾(Ana Bell)
- 出版商: 人民郵電
- 出版日期: 2023-01-01
- 定價: $719
- 售價: 8.5 折 $611
- 語言: 簡體中文
- 頁數: 408
- ISBN: 7115519773
- ISBN-13: 9787115519771
- 此書翻譯自: Get Programming: Learn to code with Python
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書是一本從零開始講解Python編程的圖書,它旨在讓零基礎讀者較快地掌握編程知識,並能使用程序來滿足自己的需要。
本書共有9個部分,除第1部分外,其餘部分都以一個階段性項目結尾。第1部分(第1~2章)介紹了學習編程的意義;第2部分(第3~6章)介紹編程的基本知識;第3部分(第7~12章)講解了字符串、元組以及與用戶交互的代碼;第4部分(第13~15章)介紹如何編寫程序來進行選擇;第5部分(第16~19章)主要涉及循環的相關知識;第6部分(第20~23章)引入了函數和模塊化的相關概念;第7部分(第24~29章)介紹了一些高級對象類型,如可變對象、列表、字典等;第8部分(第30~34章)為面向對象編程的相關知識;第9部分(第35~38章)介紹了一些可供讀者使用的現成代表庫。
作者簡介
Ana Bell博士是麻省理工学院(Massachusetts Institute of Technology,MIT)电子工程和计算机科学系的讲师。
她用Python主讲了两门计算机科学入门课程,历时已有五年之久。其中一门课程的目标人群是那些没有任何编程经验的学生,另一门课程在前一门课程的基础上进行了拓展。她非常乐于向学生讲授编程知识,并且享受学生们在学习编程过程中由于不断进步而逐渐获得的自信。用不同的方式向学生讲述同一个概念,学生能够融会贯通地理解和应用是她收获的回报。
她在普林斯顿大学时开始接触Python,并在自己的研究中应用Python解决问题。根据自己的经验,她觉得Python是一种天性自然的语言,非常易于学习和使用。
目錄大綱
第 1部分 學習編程
第 1章 為什麽要學習編程 3
1.1 為什麽編程很重要 3
1.1.1 編程並不僅限於專業人員 3
1.1.2 改善自己的生活 4
1.1.3 挑戰自我 4
1.2 起點與終點 5
1.3 我們的編程學習計劃 7
1.3.1 開始步驟 7
1.3.2 實踐!實踐!實踐 7
1.3.3 像程序員一樣思考 8
1.4 總結 9
第 2章 學習編程語言的基本原則 10
2.1 編程是一項技能 10
2.2 以烘焙為比喻 11
2.2.1 理解“烘焙一塊麵包”這個任務 11
2.2.2 尋找菜譜 12
2.2.3 用流程圖展示菜譜的可視化表現形式 13
2.2.4 使用現有的菜譜或自己創建一份菜譜 14
2.3 思考、編碼、測試、調試、重復 14
2.3.1 理解任務 16
2.3.2 任務的黑盒表現形式 16
2.3.3 編寫偽碼 18
2.4 編寫容易閱讀的代碼 18
2.4.1 使用描述性和有意義的名稱 19
2.4.2 對代碼進行註釋 19
2.5 總結 20
第 2部分 變量、類型、表達式和語句
第3章 介紹Python編程語言 23
3.1 安裝Python 23
3.1.1 什麽是Python 24
3.1.2 下載Python 3.5版本 24
3.1.3 Anaconda Python發布包 24
3.1.4 集成開發環境 24
3.2 設置工作空間 26
3.2.1 IPython控制台 27
3.2.2 文件編輯器 29
3.3 總結 31
第4章 變量和表達式:為對象賦予名稱和值 32
4.1 為對象提供名稱 33
4.1.1 數學與編程 33
4.1.2 電腦可以做什麽?不可以做什麽 34
4.2 變量 35
4.2.1 對象就是可以進行操作的物品 35
4.2.2 對象具有名稱 35
4.2.3 允許什麽樣的對象名稱 36
4.2.4 創建變量 37
4.2.5 更新變量 38
4.3 總結 40
4.4 章末檢測 40
第5章 對象的類型和代碼的語句 41
5.1 對象的類型 42
5.2 編程中對象的基本類型 42
5.2.1 整數 42
5.2.2 表示小數的浮點數 43
5.2.3 表示真/假的布爾值 44
5.2.4 表示字符序列的字符串 44
5.2.5 空值 44
5.3 使用基本類型的數據值 45
5.3.1 表達式的構件 45
5.3.2 不同類型之間的轉換 46
5.3.3 數學運算對對象類型的影響 46
5.4 總結 48
第6章 階段性項目:第 一個Python程序—時分轉換 49
6.1 思考、編碼、測試、調試、重復 50
6.2 分解任務 50
6.2.1 設置輸入 51
6.2.2 設置輸出 51
6.3 實現轉換公式 51
6.3.1 多少小時 51
6.3.2 多少分鐘 52
6.4 第 一個Python程序:解決方案一 52
6.5 第 一個Python程序:解決方案二 54
6.6 總結 55
6.7 章末檢測 55
第3部分 字符串、元組以及與用戶的交互
第7章 介紹字符串對象:字符序列 59
7.1 字符串就是字符序列 60
7.2 字符串的基本操作 60
7.2.1 創建字符串對象 60
7.2.2 理解字符串的索引 61
7.2.3 理解字符串的截取 62
7.3 字符串對象的其他操作 63
7.3.1 使用len()獲取字符串的字符數量 63
7.3.2 用upper()和lower()進行字母大小寫的轉換 64
7.4 總結 65
7.5 章末檢測 65
第8章 字符串的高級操作 66
8.1 與子字符串有關的操作 67
8.1.1 使用find()在字符串中查找一個特定的子字符串 67
8.1.2 用“in”判斷字符串中是否包含某個子字符串 68
8.1.3 用count()獲取一個子字符串的出現次數 69
8.1.4 用replace()替換子字符串 69
8.2 數學操作 70
8.3 總結 71
8.4 章末檢測 71
第9章 簡單的錯誤消息 72
9.1 輸入語句並嘗試執行 72
9.2 理解字符串錯誤消息 73
9.3 總結 74
9.4 章末檢測 74
第 10章 元組對象:任意類型的對象序列 75
10.1 元組就是數據序列 76
10.2 理解對元組的操作 77
10.2.1 用len()獲取元組的長度 77
10.2.2 用[]獲取元組索引以及截取元組的部分內容 77
10.2.3 執行數學操作 79
10.2.4 在元組內部交換對象 79
10.3 總結 80
10.4 章末檢測 80
第 11章 與用戶的交互 81
11.1 顯示輸出 82
11.1.1 打印表達式 82
11.1.2 打印多個對象 83
11.2 獲取用戶的輸入 83
11.2.1 提示用戶進行輸入 84
11.2.2 讀取輸入 84
11.2.3 把輸入存儲在變量中 85
11.2.4 把用戶的輸入轉換為不同類型 85
11.2.5 要求更多的輸入 86
11.3 總結 87
11.4 章末檢測 87
第 12章 階段性項目:姓名的混搭 88
12.1 理解問題陳述 89
12.1.1 畫出程序的基本結構 89
12.1.2 設計例子 90
12.1.3 把問題抽象化為偽碼 90
12.2 分割名字和姓氏 91
12.2.1 尋找名字和姓氏之間的空格 91
12.2.2 使用變量保存經過處理的值 91
12.2.3 對到目前為止完成的工作進行測試 92
12.3 存儲所有名字的一半 93
12.4 對名字的一半進行組合 94
12.5 總結 95
第4部分 在程序中做出選擇
第 13章 在程序中引入選擇機制 99
13.1 根據條件做出選擇 100
13.1.1 是否問題和真假語句 100
13.1.2 在語句中添加條件 101
13.2 編寫代碼做出選擇 101
13.2.1 一個例子 102
13.2.2 做出選擇的代碼:基本方式 103
13.3 程序的結構變化 103
13.3.1 做出多個選擇 104
13.3.2 根據另一個選擇結果做出選擇 104
13.3.3 一個更加復雜的嵌套的條件的例子 106
13.4 總結 108
13.5 章末檢測 108
第 14章 做出更復雜的選擇 109
14.1 組合多個條件 110
14.1.1 由真/假表達式組成的條件 111
14.1.2 操作符的優先級規則 112
14.2 選擇需要執行的代碼行 114
14.2.1 執行某個操作 114
14.2.2 綜合討論 117
14.2.3 對代碼塊進行的思考 119
14.3 總結 120
14.4 章末檢測 121
第 15章 階段性項目:冒險游戲 122
15.1 制定游戲規則 122
15.2 創建不同的路徑 123
15.3 更多的選項?可以,盡管嘗試 124
15.4 總結 126
第5部分 重復執行任務
第 16章 用循環重復任務 129
16.1 重復一個任務 130
16.1.1 在程序中引入非線性結構 130
16.1.2 無限循環 131
16.2 循環一定的次數 132
16.3 循環N次 134
16.3.1 常見的0到N–1的循環 135
16.3.2 展開循環 135
16.4 總結 136
16.5 章末檢測 136
第 17章 自定義的循環 137
17.1 自定義的循環 138
17.2 對字符串進行循環 139
17.3 總結 141
17.4 章末檢測 141
第 18章 在條件滿足時一直重復任務 143
18.1 在條件為真時保持循環 144
18.1.1 通過循環進行猜數 144
18.1.2 while循環 145
18.1.3 無限循環 146
18.2 for循環和while循環的比較 147
18.3 對循環進行控制 149
18.3.1 提前退出循環 149
18.3.2 回到循環的開始位置 150
18.4 總結 152
18.5 章末檢測 152
第 19章 階段性項目:拼字游戲(藝術版) 153
19.1 理解問題陳述 154
19.1.1 更改所有合法單詞的表示形式 154
19.1.2 用給定的字母卡組建一個合法的單詞 156
19.2 把代碼劃分為代碼段 159
19.3 總結 161
第6部分 將代碼組織為可復用的代碼塊
第 20章 創建持久性的程序 165
20.1 把一個較大的任務分解為更小的任務 166
20.1.1 在線訂購一件商品 166
20.1.2 理解主要概念 168
20.2 在編程中引入黑盒代碼 169
20.2.1 使用代碼模塊 169
20.2.2 代碼的抽象化 169
20.2.3 復用代碼 170
20.3 子任務存在於它們自己的環境中 172
20.4 總結 173
20.5 章末檢測 174
第 21章 用函數實現模塊化和抽象 175
21.1 編寫函數 176
21.1.1 函數基礎知識:函數的輸入 177
21.1.2 函數基礎知識:函數執行的操作 178
21.1.3 函數基礎知識:函數的返回信息 178
21.2 使用函數 179
21.2.1 返回多個值 180
21.2.2 沒有return語句的函數 182
21.3 編寫函數說明書 184
21.4 總結 184
21.5 章末檢測 185
第 22章 函數的高級操作 186
22.1 從兩個角度思考函數 187
22.1.1 函數編寫者的角度 187
22.1.2 函數使用者的角度 187
22.2 函數的作用域 188
22.2.1 簡單的作用域例子 188
22.2.2 作用域規則 188
22.3 嵌套函數 192
22.4 把函數作為參數傳遞 193
22.5 返回一個函數 194
22.6 總結 195
22.7 章末檢測 195
第 23章 階段性項目:對朋友進行分析 197
23.1 讀取文件 198
23.1.1 文件格式 198
23.1.2 換行符 198
23.1.3 刪除換行符 199
23.1.4 使用元組存儲信息 200
23.1.5 返回什麽 200
23.2 對用戶的輸入進行凈化 201
23.3 測試和調試到目前為止所編寫的代碼 202
23.3.1 文件對象 202
23.3.2 編寫一個包含姓名和電話號碼的文本文件 202
23.3.3 打開文件以進行讀取 203
23.4 重復使用函數 203
23.5 分析信息 204
23.5.1 規範 204
23.5.2 幫助函數 205
23.6 總結 208
第7部分 使用可變數據類型
第 24章 可變對象和不可變對象 211
24.1 不可變對象 212
24.2 對可變性的需求 214
24.3 總結 216
24.4 章末檢測 216
第 25章 對列表進行操作 217
25.1 列表與元組的比較 218
25.2 創建列表和獲取特定位置的元素 219
25.3 對元素進行計數以及獲取元素的位置 220
25.4 在列表中添加元素:append、insert和extend 221
25.4.1 使用append 221
25.4.2 使用insert 222
25.4.3 使用extend 222
25.5 從列表中移除元素:pop 223
25.6 更改元素的值 224
25.7 總結 225
25.8 章末檢測 226
第 26章 列表的高級操作 227
26.1 排序和反轉列表 228
26.2 列表的列表 229
26.3 把字符串轉換為列表 230
26.4 列表的應用 231
26.4.1 堆棧 231
26.4.2 隊列 232
26.5 總結 233
26.6 章末檢測 233
第 27章 字典作為對象之間的映射 234
27.1 創建字典、鍵和值 236
27.2 在字典中添加鍵值對 237
27.3 從字典中刪除鍵值對 238
27.4 獲取字典中所有的鍵和值 239
27.5 為什麽應該使用字典 241
27.5.1 使用頻率字典進行計數 241
27.5.2 創建非常規的字典 242
27.6 總結 243
27.7 章末檢測 243
第 28章 別名以及復制列表和字典 245
28.1 使用對象的別名 246
28.1.1 不可變對象的別名 246
28.1.2 可變對象的別名 247
28.1.3 可變對象作為函數的參數 249
28.2 創建可變對象的副本 250
28.2.1 復制可變對象的命令 250
28.2.2 獲取有序列表的副本 251
28.2.3 對可變對象進行迭代時需要小心 252
28.2.4 為什麽要存在別名 253
28.3 總結 254
28.4 章末檢測 254
第 29章 階段性項目:文檔的相似度 255
29.1 把問題分解為不同的子任務 256
29.2 讀取文件信息 256
29.3 保存文件中的所有單詞 257
29.4 把單詞映射到它們的頻率 259
29.5 使用相似度比較兩個文檔 260
29.6 最終的整合 261
29.7 一個可能的擴展 262
29.8 總結 263
第8部分 使用面向對象編程創建自己的對象類型
第30章 創建自己的對象類型 267
30.1 為什麽需要新類型 268
30.2 什麽組成了一個對象 269
30.2.1 對象的屬性 269
30.2.2 對象的行為 270
30.3 使用點號記法 270
30.4 總結 271
第31章 為對象類型創建類 272
31.1 用類實現新的對象類型 273
31.2 數據屬性作為對象的屬性 273
31.2.1 用_ _init_ _初始化對象 274
31.2.2 在_ _init_ _內部創建對象屬性 274
31.3 方法作為對象的操作和行為 275
31.4 使用定義的對象類型 276
31.5 在_ _init_ _中創建帶參數的類 277
31.6 作用於類名而不是對象的點號記法 278
31.7 總結 279
31.8 章末檢測 279
第32章 使用自己的對象類型 280
32.1 定義堆棧對象 281
32.1.1 選擇數據屬性 281
32.1.2 實現Stack類的方法 282
32.2 使用Stack對象 283
32.2.1 創建一個煎餅堆棧 283
32.2.2 創建一個圓堆棧 284
32.3 總結 287
32.4 章末檢測 287
第33章 對類進行自定義 288
33.1 覆寫一個特殊的方法 289
33.2 在自己的類中覆寫print()方法 291
33.3 背後發生的事情 292
33.4 可以對類做什麽 293
33.5 總結 294
33.6 章末檢測 294
第34章 階段性項目:牌類游戲 295
34.1 使用已經存在的類 296
34.2 詳細分析游戲規則 296
34.3 定義Player類 297
34.4 定義CardDeck類 298
34.5 模擬牌類游戲 299
34.5.1 設置對象 299
34.5.2 模擬游戲中的回合 300
34.6 用類實現模塊化和抽象 301
34.7 總結 302
第9部分 使用程序庫完善自己的程序
第35章 實用的程序庫 305
35.1 導入程序庫 306
35.2 用math庫進行數學運算 308
35.3 用random庫操作隨機數 309
35.3.1 隨機化的列表 309
35.3.2 模擬概率游戲 310
35.3.3 使用種子重復結果 311
35.4 用time庫對程序進行計時 312
35.4.1 使用時鐘 312
35.4.2 使程序暫停運行 312
35.5 總結 313
35.6 章末檢測 313
第36章 測試和調試程序 314
36.1 使用unittest程序庫 315
36.2 將程序與測試分離 316
36.3 調試代碼 319
36.4 總結 321
36.5 章末檢測 322
第37章 圖形用戶接口程序庫 323
37.1 一個圖形用戶接口庫 323
37.2 使用tkinter庫設置程序 324
37.3 添加部件 325
37.4 添加事件處理函數 327
37.5 總結 329
37.6 章末檢測 330
第38章 階段性項目:追逐游戲 331
38.1 確認問題的組成部分 332
38.2 在窗口中創建兩個形狀 332
38.3 在畫布中移動形狀 335
38.4 檢測形狀之間的碰撞 337
38.5 可能的擴展 338
38.6 總結 339
附錄A 各章習題的答案 340
附錄B Python語法摘要 381
附錄C 有趣的Python程序庫 384