內容提要
《少博士趣學Python》是一本編程與科技結合的啟蒙書籍,全書從簡單的小示例入手,介紹核心編程概念,並通過多個簡單、有趣的編程案例,啟發初學者探索身邊的科技。例如,編寫聊天機器人、掃地機器人、數學試卷機器人、繪圖軟體、密碼程式等。書中不僅講解了Python語法,還通過編程示例,給青少年讀者以信息世界的啟蒙。
目錄
第1 章 編程與我們的生活 1
1.1 為什麼學編程 1
1.1.1 通過編程了解以科技為核心的世界 1
1.1.2 編程很有趣 1
1.1.3 編程能鍛鍊你的思維能力 2
1.2 為什麼學Python 2
1.3 如何學好編程 2
1.4 計算機的長處和不足 2
1.5 下載並安裝Python 3
1.5.1 Windows 系統 4
1.5.2 Mac 系統 5
1.6 在Shell 里編寫代碼 6
1.7 在編輯器里編寫代碼 8
1.8 五顏六色的代碼 9
1.9 幫助我們的提示信息 9
第2 章 Python 編程初體驗——發號施令 11
2.1 什麼是編程 11
2.2 給小海龜精確地發號施令 12
2.2.1 指揮海龜畫正方形 12
2.2.2 指揮海龜畫八邊形 14
2.3 省力氣的循環 16
2.4 旋轉的正方形 17
2.5 創造酷炫的圖案 19
2.6 給點顏色看看 21
2.7 總結及課後練習 22
第3 章 跟機器交流 23
3.1 和計算機對話 23
3.2 輸入和輸出 28
3.3 跟人對話——注釋 28
3.4 案例:笑話製造機 29
3.5 總結及課後練習 30
第4 章 數據的世界 32
4.1 變數 32
4.1.1 為什麼要用變數 33
4.1.2 變數名 33
4.1.3 變數有多可“變” 34
4.2 算法通過處理數據解決問題 36
4.3 Python 數據類型及轉換函式 36
4.3.1 常見數據類型 36
4.3.2 數據類型轉換函式 37
4.3.3 數據分類的好處 38
4.4 數字 38
4.4.1 探索運算符 38
4.4.2 案例1:輸出三位數中的每位數字 41
4.5 字元串 42
4.5.1 字元串常見處理 43
4.5.2 案例2:國家名簡寫 45
4.5.3 案例3:城市名加密 47
4.6 布爾值 48
4.6.1 布爾值及底層的意義 48
4.6.2 比較數據 49
4.6.3 布爾值與邏輯運算符的故事——小熊選照片 50
4.6.4 邏輯運算符 51
4.6.5 案例4:卡片通關挑戰 52
4.7 總結及課後練習 57
第5 章 好好安排數據 58
5.1 安排數據的方式 58
5.2 列表 59
5.2.1 獲取列表值 60
5.2.2 修改列表 62
5.2.3 二維列表 64
5.2.4 列表挑戰練習 66
5.3 元組 67
5.4 字典 68
5.4.1 什麼是字典 68
5.4.2 使用字典 69
5.4.3 案例:查詢課程表 70
5.4.4 字典挑戰練習 72
5.5 總結及課後練習 72
第6 章 條件判斷——學會做決定 74
6.1 條件判斷 74
6.1.1 生活中的判斷 74
6.1.2 程式中的判斷 74
6.2 if…else…語句 75
6.2.1 案例1:你的成績合格嗎 76
6.2.2 代碼的位置 77
6.2.3 案例2:奇偶數判斷 78
6.3 if…語句 79
案例3:今天你戴口罩了嗎 79
6.4 if…elif…else…語句 80
案例4:判斷正數、負數和零 81
6.5 條件判斷總結 83
6.5.1 紅綠燈導航系統 84
6.5.2 案例5:閏年計算器 84
6.6 條件判斷套用 86
6.6.1 案例6:趣味擲骰子 86
6.6.2 案例7:心理測驗 87
6.6.3 案例8:聊天機器人 91
6.7 總結及課後練習 97
第7 章 循環——讓計算機重複工作 100
7.1 流程控制 100
7.2 什麼是循環 101
7.3 for 循環 101
7.3.1 重複列印任務 101
7.3.2 案例1:敵軍還有5 秒到達戰場 102
7.3.3 for 循環語法 105
7.3.4 案例2:乘法口訣表 105
7.3.5 range()函式 107
7.3.6 for 循環練習 109
7.4 案例3:奶昔機器人 112
7.5 while 循環 113
7.5.1 while 循環的意義 113
7.5.2 比較while 和if 114
7.5.3 while 循環語法 115
7.5.4 案例4:加血道具的回血 115
7.5.5 無限循環和break 語句 117
7.6 案例5:掃地機器人的故事 119
7.7 案例6:自動駕駛程式的故事 121
7.8 案例7:猜數字遊戲 123
7.9 總結及課後練習 127
第8 章 抽象函式——分而治之的學問 128
8.1 分而治之和抽象 128
8.2 函式 131
8.2.1 定義並調用函式 132
8.2.2 函式中代碼的注意事項 132
8.2.3 帶參數的函式 133
8.2.4 案例1:簡單的函式練習 136
8.2.5 做事情的函式VS 返回值的函式 137
8.3 案例2:數學試卷機器人 140
8.3.1 策劃數學試卷機器人 140
8.3.2 隨機模組的用法 141
8.3.3 題目的函式 141
8.3.4 策劃程式邏輯 144
8.3.5 完整的程式代碼 145
8.4 遞歸函式的故事 146
8.4.1 階乘與遞歸 146
8.4.2 無限遞歸 147
8.4.3 案例3:科赫曲線 148
8.4.4 案例4:科赫雪花 149
8.5 變數的作用域 150
8.6 總結及課後練習 151
第9 章 Python 庫——讓強大的Python 庫幫忙 153
9.1 Python 模組概述 153
9.2 安裝、卸載和使用Python 模組 154
9.2.1 安裝與卸載Python 模組 154
9.2.2 Python 文檔 157
9.3 random 模組 159
9.3.1 隨機模組常見函式 159
9.3.2 隨機模組函式練習 160
9.3.3 案例1:幸運大抽獎 161
9.4 時間模組和日期時間模組 163
9.4.1 時間模組 163
9.4.2 日期時間模組 166
9.5 webbrowser 模組 167
9.5.1 webbrowser 簡介 167
9.5.2 案例2:天氣機器人 167
9.6 操作檔案 169
9.6.1 作業系統的os 模組 169
9.6.2 案例3:音樂倒計時 171
9.6.3 案例4:編寫文檔的docx 模組 172
9.7 總結及課後練習 174
第10 章 Tkinter 界面——有按鈕的軟體 175
10.1 GUI 與CUI 175
10.2 介紹Tkinter 框架 176
10.3 給窗體添加控制項 177
10.4 讓控制項變漂亮 179
10.4.1 為控制項設定屬性的方法 179
10.4.2 控制項的常用屬性 180
10.4.3 使用config 配置屬性 182
10.5 讓窗體裡的東西動起來 183
10.5.1 Tkinter 里的事件 184
10.5.2 回響事件中的屬性 185
10.6 案例1:繪圖軟體 187
10.6.1 製作繪圖軟體1 188
10.6.2 製作繪圖軟體2 192
10.6.3 製作繪圖軟體3 194
10.7 案例2:編寫桌面備忘錄 197
10.8 總結及課後練習 198
第11 章 密碼的奧妙——眾目睽睽之下的悄悄話 199
11.1 打勝仗要靠算法 199
11.2 案例1:倒著說話——調轉密碼 200
11.2.1 調轉密碼介紹 200
11.2.2 編寫調轉密碼 200
11.2.3 編寫調轉密碼視窗 201
11.3 案例2:繞小彎說話——凱撒密碼 202
11.3.1 凱撒密碼介紹 202
11.3.2 編寫凱撒密碼 203
11.3.3 編寫凱撒密碼視窗 206
11.3.4 破解凱撒密碼 207
11.4 案例3:混亂著說話——打亂替換密碼 207
11.4.1 打亂替換密碼介紹 207
11.4.2 編寫打亂替換密碼 208
11.5 案例4:繞大彎說話——維吉尼亞密碼 210
11.5.1 維吉尼亞密碼介紹 210
11.5.2 編寫維吉尼亞密碼 211
11.6 案例5:靠計數破譯密碼 212
11.7 總結及課後練習 215
第12 章 二進制數的世界 217
12.1 二進制數是什麼 217
12.2 二進制數轉十進制數 218
12.3 十進制數轉二進制數 220
12.4 圖片都是數字 221
12.5 字母都是數字 222
12.6 總結及課後練習 224
第13 章 潛水鐘與蝴蝶——用計算性思維解決問題 225
13.1 潛水鐘與蝴蝶的故事 225
13.1.1 第一次嘗試——眨眼次數代表的字母 226
13.1.2 第二次嘗試——二分搜尋 226
13.1.3 持續地嘗試 228
13.2 編寫程式為身邊的人解決問題 229
本書特點
在《少博士趣學Python》中,我希望教給讀者的不僅是如何寫Python 代碼,更是通過編寫有趣的編程項目初識科技背後的故事。我們從簡單的例子入手,逐漸增加編程項目的難度,通過不同的練習,思考身邊的科技。本書並不是一本Python 語法大全,Python 語言博大精深,而本書只接觸到了冰山一角。
本書介紹了Python 的許多入門知識,例如基本的語法、模組的使用,以及如何用Tkinter 編寫大家熟悉的圖形化界面程式等。讀完本書後,你就可以開始編寫強大的程式了!
閱讀對象
這是一本編程與科技結合的啟蒙書籍,我並不想寫一本針對資深極客或程式設計師的書,而是希望讓更多的大朋友和小朋友通過這本書嘗試編程。這本書適合:
想學編程的小朋友
想教小朋友編程的老師
想教小朋友編程的家長
對科學技術好奇,想在輕鬆、有趣的環境下探索編程的大朋友
當然,因為本書面向初學者,所以還有許多知識是書里沒有講到的,比方說製作遊戲的Pygame 模組、面向對象的程式設計方式等。我相信一名程式設計師應具備的能力之一是具有很強的學習能力,畢竟科技每幾年都要更新疊代一次,一名好的程式設計師是有能力和動力去持續學習的。希望你也能夠持續不斷地學習,不斷讓自己進步!
作 者