python入門神書!|python編程從入門到實踐|內附網盤鏈接帶提取碼|

来源:https://www.cnblogs.com/nanyang1/archive/2020/07/24/13374618.html
-Advertisement-
Play Games

點擊此處進入網盤下載地址 提取碼:o39n 全書共有20章,書中的簡介如下: 本書旨在讓你儘快學會 Python ,以便能夠編寫能正確運行的程式 —— 游戲、數據可視化和 Web 應用程式,同時掌握讓你終身受益的基本編程知識。本書適合任何年齡的讀者閱讀,它不要求你有任何 Python 編程經驗,甚至 ...


點擊此處進入網盤下載地址

提取碼:o39n

全書共有20章,書中的簡介如下:

本書旨在讓你儘快學會 Python ,以便能夠編寫能正確運行的程式 —— 游戲、數據可視化和 Web 應用程式,同時掌握讓你終身受益的基本編程知識。本書適合任何年齡的讀者閱讀,
它不要求你有任何 Python 編程經驗,甚至不要求你有編程經驗。如果你想快速掌握基本的編程知識以便專註於開發感興趣的項目,並想通過解決有意義的問題來檢查你對新學概念
的理解程度,那麼本書就是為你編寫的。本書還可供初中和高中教師用來通過開發項目向學生介紹編程。

本書旨在讓你成為優秀的程式員,具體地說,是優秀的 Python 程式員。通過閱讀本書,你將迅速掌握編程概念,打下堅實的基礎,並養成良好的習慣。閱讀本書後,你就可以開始
學習 Python 高級技術,並能夠更輕鬆地掌握其他編程語言。


在本書的第一部分,你將學習編寫 Python 程式時需要熟悉的基本編程概念,你剛接觸幾乎任何編程語言時都需要學習這些概念。你將學習各種數據以及在程式中將數據存儲到列表
和字典中的方式。你將學習如何創建數據集合以及如何高效地遍歷這些集合。你將學習使用 while 和 if 語句來檢查條件,併在條件滿足時執行代碼的一部分,而在條件不滿足
時執行代碼的另一部分 —— 這可為自動完成處理提供極大的幫助。
你將學習獲取用戶輸入,讓程式能夠與用戶交互,併在用戶沒停止輸入時保持運行狀態。你將探索如何編寫函數來讓程式的各個部分可重用,這樣你編寫執行特定任務的代碼
後,想使用它多少次都可以。然後,你將學習使用類來擴展這種概念以實現更複雜的行為,從而讓非常簡單的程式也能處理各種不同的情形。你將學習編寫妥善處理常見錯誤的
程式。學習這些基本概念後,你就能編寫一些簡短的程式來解決一些明確的問題。最後,你將向中級編程邁出第一步,學習如何為代碼編寫測試,以便在進一步改進程式時不用
擔心可能引入 bug 。第一部分介紹的知識讓你能夠開發更大、更複雜的項目。


在第二部分,你將利用在第一部分學到的知識來開發三個項目。你可以根據自己的情況,以最合適的順序完成這些項目;你也可以選擇只完成其中的某些項目。在第一個項目
(第 12~14 章)中,你將創建一個類似於《太空入侵者》的射擊游戲。這個游戲名為《外星人入侵》,它包含多個難度不斷增加的等級。完成這個項目後,你就能夠自己動手開發
2D 游戲了。
第二個項目(第 15~17 章)介紹數據可視化。數據科學家的目標是通過各種可視化技術來搞懂海量信息。你將使用通過代碼生成的數據集、已經從網路下載下來的數據集以及程式
自動下載的數據集。完成這個項目後,你將能夠編寫能對大型數據集進行篩選的程式,並以可視化方式將篩選出來的數據呈現出來。
在第三個項目(第 18~20 章)中,你將創建一個名為 “ 學習筆記 ” 的小型 Web 應用程式。這個項目能夠讓用戶將學到的與特定主題相關的概念記錄下來。你將能夠分別記錄不同的主
題,還可以讓其他人建立賬戶並開始記錄自己的學習筆記。你還將學習如何部署這個項目,讓任何人都能夠通過網路訪問它,而不管他身處何方。


目錄:
第 1 章 起步
1.1  搭建編程環境
1.1.1   Python 2 和 Python 3
1.1.2  運行 Python 代碼片段
1.1.3   Hello World 程式
1.2  在不同操作系統中搭建 Python 編程環境
1.2.1  在 Linux 系統中搭建 Python 編程環境
1.2.2  在 OS X 系統中搭建 Python 編程環境
1.2.3  在 Windows 系統中搭建 Python 編程環境
1.3  解決安裝問題
1.4  從終端運行 Python 程式
1.4.1  在 Linux 和 OS X 系統中從終端運行 Python 程式
1.4.2  在 Windows 系統中從終端運行 Python 程式
1.5  小結
第 2 章 變數和簡單數據類型
2.1  運行 hello_world.py 時發生的情況
2.2  變數
2.2.1  變數的命名和使用
2.2.2  使用變數時避免命名錯誤
2.3  字元串
2.3.1  使用方法修改字元串的大小寫
2.3.2  合併(拼接)字元串
2.3.3  使用製表符或換行符來添加空白
2.3.4  刪除空白
2.3.5  使用字元串時避免語法錯誤
2.3.6   Python 2 中的 print 語句
2.4  數字
2.4.1  整數
2.4.2  浮點數
2.4.3  使用函數 str() 避免類型錯誤
2.4.4   Python 2 中的整數
2.5  註釋
2.5.1  如何編寫註釋
2.5.2  該編寫什麼樣的註釋
2.6   Python 之禪
2.7  小結
第 3 章 列表簡介
3.1  列表是什麼
3.1.1  訪問列表元素
3.1.2  索引從 0 而不是 1 開始
3.1.3  使用列表中的各個值
3.2  修改、添加和刪除元素
3.2.1  修改列表元素
3.2.2  在列表中添加元素
3.2.3  從列表中刪除元素
3.3  組織列表
3.3.1  使用方法 sort() 對列表進行永久性排序
3.3.2  使用函數 sorted() 對列表進行臨時排序
3.3.3  倒著列印列表
3.3.4  確定列表的長度
3.4  使用列表時避免索引錯誤
3.5  小結
第 4 章 操作列表
4.1  遍歷整個列表
4.1.1  深入地研究迴圈
4.1.2  在 for 迴圈中執行更多的操作
4.1.3  在 for 迴圈結束後執行一些操作
4.2  避免縮進錯誤
4.2.1  忘記縮進
4.2.2  忘記縮進額外的代碼行
4.2.3  不必要的縮進
4.2.4  迴圈後不必要的縮進
4.2.5  遺漏了冒號
4.3  創建數值列表
4.3.1  使用函數 range()
4.3.2  使用 range() 創建數字列表
4.3.3  對數字列表執行簡單的統計計算
4.3.4  列表解析
4.4  使用列表的一部分
4.4.1  切片
4.4.2  遍歷切片
4.4.3  複製列表
4.5  元組
4.5.1  定義元組
4.5.2  遍歷元組中的所有值
4.5.3  修改元組變數
4.6  設置代碼格式
4.6.1  格式設置指南
4.6.2  縮進
4.6.3  行長
4.6.4  空行
4.6.5  其他格式設置指南
4.7  小結
第 5 章  if 語句
5.1  一個簡單示例
5.2  條件測試
5.2.1  檢查是否相等
5.2.2  檢查是否相等時不考慮大小寫
5.2.3  檢查是否不相等
5.2.4  比較數字
5.2.5  檢查多個條件
5.2.6  檢查特定值是否包含在列表中
5.2.7  檢查特定值是否不包含在列表中
5.2.8  布爾表達式
5.3   if 語句
5.3.1  簡單的 if 語句
5.3.2   if-else 語句
5.3.3   if-elif-else 結構
5.3.4  使用多個 elif 代碼塊
5.3.5  省略 else 代碼塊
5.3.6  測試多個條件
5.4  使用 if 語句處理列表
5.4.1  檢查特殊元素
5.4.2  確定列表不是空的
5.4.3  使用多個列表
5.5  設置 if 語句的格式
5.6  小結
第 6 章 字典
6.1  一個簡單的字典
6.2  使用字典
6.2.1  訪問字典中的值
6.2.2  添加鍵 — 值對
6.2.3  先創建一個空字典
6.2.4  修改字典中的值
6.2.5  刪除鍵 — 值對
6.2.6  由類似對象組成的字典
6.3  遍歷字典
6.3.1  遍歷所有的鍵 — 值對
6.3.2  遍歷字典中的所有鍵
6.3.3  按順序遍歷字典中的所有鍵
6.3.4  遍歷字典中的所有值
6.4  嵌套
6.4.1  字典列表
6.4.2  在字典中存儲列表
6.4.3  在字典中存儲字典
6.5  小結
第 7 章 用戶輸入和 while 迴圈
7.1  函數 input() 的工作原理
7.1.1  編寫清晰的程式
7.1.2  使用 int() 來獲取數值輸入
7.1.3  求模運算符
7.1.4  在 Python 2.7 中獲取輸入
7.2   while 迴圈簡介
7.2.1  使用 while 迴圈
7.2.2  讓用戶選擇何時退出
7.2.3  使用標誌
7.2.4  使用 break 退出迴圈
7.2.5  在迴圈中使用 continue
7.2.6  避免無限迴圈
7.3  使用 while 迴圈來處理列表和字典
7.3.1  在列表之間移動元素
7.3.2  刪除包含特定值的所有列表元素
7.3.3  使用用戶輸入來填充字典
7.4  小結
第 8 章 函數
8.1  定義函數
8.1.1  向函數傳遞信息
8.1.2  實參和形參
8.2  傳遞實參
8.2.1  位置實參
8.2.2  關鍵字實參
8.2.3  預設值
8.2.4  等效的函數調用
8.2.5  避免實參錯誤
8.3  返回值
8.3.1  返回簡單值
8.3.2  讓實參變成可選的
8.3.3  返回字典
8.3.4  結合使用函數和 while 迴圈
8.4  傳遞列表
8.4.1  在函數中修改列表
8.4.2  禁止函數修改列表
8.5  傳遞任意數量的實參
8.5.1  結合使用位置實參和任意數量實參
8.5.2  使用任意數量的關鍵字實參
8.6  將函數存儲在模塊中
8.6.1  導入整個模塊
8.6.2  導入特定的函數
8.6.3  使用 as 給函數指定別名
8.6.4  使用 as 給模塊指定別名
8.6.5  導入模塊中的所有函數
8.7  函數編寫指南
8.8  小結
第 9 章 類
9.1  創建和使用類
9.1.1  創建 Dog 類
9.1.2  根據類創建實例
9.2  使用類和實例
9.2.1   Car 類
9.2.2  給屬性指定預設值
9.2.3  修改屬性的值
9.3  繼承
9.3.1  子類的方法 __init__()
9.3.2   Python 2.7 中的繼承
9.3.3  給子類定義屬性和方法
9.3.4  重寫父類的方法
9.3.5  將實例用作屬性
9.3.6  模擬實物
9.4  導入類
9.4.1  導入單個類
9.4.2  在一個模塊中存儲多個類
9.4.3  從一個模塊中導入多個類
9.4.4  導入整個模塊
9.4.5  導入模塊中的所有類
9.4.6  在一個模塊中導入另一個模塊
9.4.7  自定義工作流程
9.5   Python 標準庫
9.6  類編碼風格
9.7  小結
第 10 章 文件和異常
10.1  從文件中讀取數據
10.1.1  讀取整個文件
10.1.2  文件路徑
10.1.3  逐行讀取
10.1.4  創建一個包含文件各行內容的列表
10.1.5  使用文件的內容
10.1.6  包含一百萬位的大型文件
10.1.7  圓周率值中包含你的生日嗎
10.2  寫入文件
10.2.1  寫入空文件
10.2.2  寫入多行
10.2.3  附加到文件
10.3  異常
10.3.1  處理 ZeroDivisionError 異常
10.3.2  使用 try-except 代碼塊
10.3.3  使用異常避免崩潰
10.3.4   else 代碼塊
10.3.5  處理 FileNotFoundError 異常
10.3.6  分析文本
10.3.7  使用多個文件
10.3.8  失敗時一聲不吭
10.3.9  決定報告哪些錯誤
10.4  存儲數據
10.4.1  使用 json.dump() 和 json.load()
10.4.2  保存和讀取用戶生成的數據
10.4.3  重構
10.5  小結
第 11 章 測試代碼
11.1  測試函數
11.1.1  單元測試和測試用例
11.1.2  可通過的測試
11.1.3  不能通過的測試
11.1.4  測試未通過時怎麼辦
11.1.5  添加新測試
11.2  測試類
11.2.1  各種斷言方法
11.2.2  一個要測試的類
11.2.3  測試 AnonymousSurvey 類
11.2.4  方法 setUp()
11.3  小結
第二部分 項目
項目 1  外星人入侵
第 12 章 武裝飛船
12.1  規劃項目
12.2  安裝 Pygame
12.2.1  使用 pip 安裝 Python 包
12.2.2  在 Linux 系統中安裝 Pygame
12.2.3  在 OS X 系統中安裝 Pygame
12.2.4  在 Windows 系統中安裝 Pygame
12.3  開始游戲項目
12.3.1  創建 Pygame 視窗以及響應用戶輸入
12.3.2  設置背景色
12.3.3  創建設置類
12.4  添加飛船圖像
12.4.1  創建 Ship 類
12.4.2  在屏幕上繪製飛船
12.5  重構:模塊 game_functions
12.5.1  函數 check_events()
12.5.2  函數 update_screen()
12.6  駕駛飛船
12.6.1  響應按鍵
12.6.2  允許不斷移動
12.6.3  左右移動
12.6.4  調整飛船的速度
12.6.5  限制飛船的活動範圍
12.6.6  重構 check_events()
12.7  簡單回顧
12.7.1   alien_invasion.py
12.7.2   settings.py
12.7.3   game_functions.py
12.7.4   ship.py
12.8  射擊
12.8.1  添加子彈設置
12.8.2  創建 Bullet 類
12.8.3  將子彈存儲到編組中
12.8.4  開火
12.8.5  刪除已消失的子彈
12.8.6  限制子彈數量
12.8.7  創建函數 update_bullets()
12.8.8  創建函數 fire_bullet()
12.9  小結
第 13 章 外星人
13.1  回顧項目
13.2  創建第一個外星人
13.2.1  創建 Alien 類
13.2.2  創建 Alien 實例
13.2.3  讓外星人出現在屏幕上
13.3  創建一群外星人
13.3.1  確定一行可容納多少個外星人
13.3.2  創建多行外星人
13.3.3  創建外星人群
13.3.4  重構 create_fleet()
13.3.5  添加行
13.4  讓外星人群移動
13.4.1  向右移動外星人
13.4.2  創建表示外星人移動方向的設置
13.4.3  檢查外星人是否撞到了屏幕邊緣
13.4.4  向下移動外星人群並改變移動方向
13.5  射殺外星人
13.5.1  檢測子彈與外星人的碰撞
13.5.2  為測試創建大子彈
13.5.3  生成新的外星人群
13.5.4  提高子彈的速度
13.5.5  重構 update_bullets()
13.6  結束游戲
13.6.1  檢測外星人和飛船碰撞
13.6.2  響應外星人和飛船碰撞
13.6.3  有外星人到達屏幕底端
13.6.4  游戲結束
13.7  確定應運行游戲的哪些部分
13.8  小結
記分
14.1  添加 Play 按鈕
14.1.1  創建 Button 類
14.1.2  在屏幕上繪製按鈕
14.1.3  開始游戲
14.1.4  重置游戲
14.1.5  將 Play 按鈕切換到非活動狀態
14.1.6  隱藏游標
14.2  提高等級
14.2.1  修改速度設置
14.2.2  重置速度
14.3  記分
14.3.1  顯示得分
14.3.2  創建記分牌
14.3.3  在外星人被消滅時更新得分
14.3.4  將消滅的每個外星人的點數都計入得分
14.3.5  提高點數
14.3.6  將得分圓整
14.3.7  最高得分
14.3.8  顯示等級
14.3.9  顯示餘下的飛船數
14.4  小結
項目 2  數據可視化
第 15 章 生成數據
15.1  安裝 matplotlib
15.1.1  在 Linux 系統中安裝 matplotlib
15.1.2  在 OS X 系統中安裝 matplotlib
15.1.3  在 Windows 系統中安裝 matplotlib
15.1.4  測試 matplotlib
15.1.5   matplotlib 畫廊
15.2  繪製簡單的折線圖
15.2.1  修改標簽文字和線條粗細
15.2.2  校正圖形
15.2.3  使用 scatter() 繪製散點圖並設置其樣式
15.2.4  使用 scatter() 繪製一系列點
15.2.5  自動計算數據
15.2.6  刪除數據點的輪廓
15.2.7  自定義顏色
15.2.8  使用顏色映射
15.2.9  自動保存圖表
15.3  隨機漫步
15.3.1  創建 RandomWalk() 類
15.3.2  選擇方向
15.3.3  繪製隨機漫步圖
15.3.4  模擬多次隨機漫步
15.3.5  設置隨機漫步圖的樣式
15.3.6  給點著色
15.3.7  重新繪製起點和終點
15.3.8  隱藏坐標軸
15.3.9  增加點數
15.3.10  調整尺寸以適合屏幕
15.4  使用 Pygal 模擬擲骰子
15.4.1  安裝 Pygal
15.4.2   Pygal 畫廊
15.4.3  創建 Die 類
15.4.4  擲骰子
15.4.5  分析結果
15.4.6  繪製直方圖
15.4.7  同時擲兩個骰子
15.4.8  同時擲兩個面數不同的骰子
15.5  小結
第 16 章 下載數據
16.1   CSV 文件格式
16.1.1  分析 CSV 文件頭
16.1.2  列印文件頭及其位置
16.1.3  提取並讀取數據
16.1.4  繪製氣溫圖表
16.1.5  模塊 datetime
16.1.6  在圖表中添加日期
16.1.7  涵蓋更長的時間
16.1.8  再繪製一個數據系列
16.1.9  給圖表區域著色
16.1.10  錯誤檢查
16.2  製作世界人口地圖: JSON 格式
16.2.1  下載世界人口數據
16.2.2  提取相關的數據
16.2.3  將字元串轉換為數字值
16.2.4  獲取兩個字母的國別碼
16.2.5  製作世界地圖
16.2.6  在世界地圖上呈現數字數據
16.2.7  繪製完整的世界人口地圖
16.2.8  根據人口數量將國家分組
16.2.9  使用 Pygal 設置世界地圖的樣式
16.2.10  加亮顏色主題
16.3  小結
第 17 章 使用 API
17.1  使用 Web API
17.1.1   Git 和 GitHub
17.1.2  使用 API 調用請求數據
17.1.3  安裝 requests
17.1.4  處理 API 響應
17.1.5  處理響應字典
17.1.6  概述最受歡迎的倉庫
17.1.7  監視 API 的速率限制
17.2  使用 Pygal 可視化倉庫
17.2.1  改進 Pygal 圖表
17.2.2  添加自定義工具提示
17.2.3  根據數據繪圖
17.2.4  在圖表中添加可單擊的鏈接
17.3   Hacker News API
17.4  小結
項目 3   Web 應用程式
第 18 章  Django 入門
18.1  建立項目
18.1.1  制定規範
18.1.2  建立虛擬環境
18.1.3  安裝 virtualenv
18.1.4  激活虛擬環境
18.1.5  安裝 Django
18.1.6  在 Django 中創建項目
18.1.7  創建資料庫
18.1.8  查看項目
18.2  創建應用程式
18.2.1  定義模型
18.2.2  激活模型
18.2.3   Django 管理網站
18.2.4  定義模型 Entry
18.2.5  遷移模型 Entry
18.2.6  向管理網站註冊 Entry
18.2.7   Django shell
18.3  創建網頁:學習筆記主頁
18.3.1  映射 URL
18.3.2  編寫視圖
18.3.3  編寫模板
18.4  創建其他網頁
18.4.1  模板繼承
18.4.2  顯示所有主題的頁面
18.4.3  顯示特定主題的頁面
18.5  小結
第 19 章 用戶賬戶
19.1  讓用戶能夠輸入數據
19.1.1  添加新主題
19.1.2  添加新條目
19.1.3  編輯條目
19.2  創建用戶賬戶
19.2.1  應用程式 users
19.2.2  登錄頁面
19.2.3  註銷
19.2.4  註冊頁面
19.3  讓用戶擁有自己的數據
19.3.1  使用 @login_required 限制訪問
19.3.2  將數據關聯到用戶
19.3.3  只允許用戶訪問自己的主題
19.3.4  保護用戶的主題
19.3.5  保護頁面 edit_entry
19.3.6  將新主題關聯到當前用戶
19.4  小結
第 20 章 設置應用程式的樣式並對其進行部署
20.1  設置項目 “ 學習筆記 ” 的樣式
20.1.1  應用程式 django-bootstrap3
20.1.2  使用 Bootstrap 來設置項目 “ 學習筆記 ” 的樣式
20.1.3  修改 base.html
20.1.4  使用 jumbotron 設置主頁的樣式
20.1.5  設置登錄頁面的樣式
20.1.6  設置 new_topic 頁面的樣式
20.1.7  設置 topics 頁面的樣式
20.1.8  設置 topic 頁面中條目的樣式
20.2  部署 “ 學習筆記 ”
20.2.1  建立 Heroku 賬戶
20.2.2  安裝 Heroku Toolbelt
20.2.3  安裝必要的包
20.2.4  創建包含包列表的文件 requirements.txt
20.2.5  指定 Python 版本
20.2.6  為部署到 Herohu 而修改 settings.py
20.2.7  創建啟動進程的 Procfile
20.2.8  為部署到 Herohu 而修改 wsgi.py
20.2.9  創建用於存儲靜態文件的目錄
20.2.10  在本地使用 gunicorn 伺服器
20.2.11  使用 Git 跟蹤項目文件
20.2.12  推送到 Heroku
20.2.13  在 Heroku 上建立資料庫
20.2.14  改進 Heroku 部署
20.2.15  確保項目的安全
20.2.16  提交並推送修改
20.2.17  創建自定義錯誤頁面
20.2.18  繼續開發
20.2.19  設置 SECRET_KEY
20.2.20  將項目從 Heroku 刪除
20.3  小結
附錄 A  安裝 Python
A.1  在 Linux 系統中安裝 Python
A.1.1  確定已安裝的版本
A.1.2  在 Linux 系統中安裝 Python 3
A.2  在 OS X 系統中安裝 Python
A.2.1  確定已安裝的版本
A.2.2  使用 Homebrew 來安裝 Python 3
A.3  在 Windows 系統中安裝 Python
A.3.1  在 Windows 系統中安裝 Python 3
A.3.2  查找 Python 解釋器
A.3.3  將 Python 添加到環境變數 Path 中
A.4   Python 關鍵字和內置函數
A.4.1   Python 關鍵字
A.4.2   Python 內置函數
附錄 B  文本編輯器
B.1   Geany
B.1.1  在 Linux 系統中安裝 Geany
B.1.2  在 Windows 系統中安裝 Geany
B.1.3  在 Geany 中運行 Python 程式
B.1.4  定製 Geany 的設置
B.2   Sublime Text
B.2.1  在 OS X 系統中安裝 Sublime Text
B.2.2  在 Linux 系統中安裝 Sublime Text
B.2.3  在 Windows 系統中安裝 Sublime Text
B.2.4  在 Sublime Text 中運行 Python 程式
B.2.5  配置 Sublime Text
B.2.6  定製 Sublime Text 的設置
B.3   IDLE
B.3.1  在 Linux 系統中安裝 IDLE
B.3.2  在 OS X 系統中安裝 IDLE
B.3.3  在 Windows 系統中安裝 IDLE
B.3.4  定製 IDLE 的設置
B.4   Emacs 和 vim
附錄 C  尋求幫助
C.1  第一步
C.1.1  再試試
C.1.2  歇一會兒
C.1.3  參考本書的線上資源
C.2  線上搜索
C.2.1   Stack Overflow
C.2.2   Python 官方文檔
C.2.3  官方庫文檔
C.2.4   r/learnpython
C.2.5  博客
C.3   IRC
C.3.1  創建 IRC 賬戶
C.3.2  加入頻道
C.3.3   IRC 文化
附錄 D  使用 Git 進行版本控制
D.1  安裝 Git
D.1.1  在 Linux 系統中安裝 Git
D.1.2  在 OS X 系統中安裝 Git
D.1.3  在 Windows 系統中安裝 Git
D.1.4  配置 Git
D.2  創建項目
D.3  忽略文件
D.4  初始化倉庫
D.5  檢查狀態
D.6  將文件加入到倉庫中
D.7  執行提交
D.8  查看提交歷史
D.9  第二次提交
D.10  撤銷修改
D.11  檢出以前的提交
D.12  刪除倉庫

全書共有20章,書中的簡介如下:

本書旨在讓你儘快學會 Python ,以便能夠編寫能正確運行的程式 —— 游戲、數據可視化和 Web 應用程式,同時掌握讓你終身受益的基本編程知識。本書適合任何年齡的讀者閱讀,
它不要求你有任何 Python 編程經驗,甚至不要求你有編程經驗。如果你想快速掌握基本的編程知識以便專註於開發感興趣的項目,並想通過解決有意義的問題來檢查你對新學概念
的理解程度,那麼本書就是為你編寫的。本書還可供初中和高中教師用來通過開發項目向學生介紹編程。

本書旨在讓你成為優秀的程式員,具體地說,是優秀的 Python 程式員。通過閱讀本書,你將迅速掌握編程概念,打下堅實的基礎,並養成良好的習慣。閱讀本書後,你就可以開始
學習 Python 高級技術,並能夠更輕鬆地掌握其他編程語言。


在本書的第一部分,你將學習編寫 Python 程式時需要熟悉的基本編程概念,你剛接觸幾乎任何編程語言時都需要學習這些概念。你將學習各種數據以及在程式中將數據存儲到列表
和字典中的方式。你將學習如何創建數據集合以及如何高效地遍歷這些集合。你將學習使用 while 和 if 語句來檢查條件,併在條件滿足時執行代碼的一部分,而在條件不滿足
時執行代碼的另一部分 —— 這可為自動完成處理提供極大的幫助。
你將學習獲取用戶輸入,讓程式能夠與用戶交互,併在用戶沒停止輸入時保持運行狀態。你將探索如何編寫函數來讓程式的各個部分可重用,這樣你編寫執行特定任務的代碼
後,想使用它多少次都可以。然後,你將學習使用類來擴展這種概念以實現更複雜的行為,從而讓非常簡單的程式也能處理各種不同的情形。你將學習編寫妥善處理常見錯誤的
程式。學習這些基本概念後,你就能編寫一些簡短的程式來解決一些明確的問題。最後,你將向中級編程邁出第一步,學習如何為代碼編寫測試,以便在進一步改進程式時不用
擔心可能引入 bug 。第一部分介紹的知識讓你能夠開發更大、更複雜的項目。


在第二部分,你將利用在第一部分學到的知識來開發三個項目。你可以根據自己的情況,以最合適的順序完成這些項目;你也可以選擇只完成其中的某些項目。在第一個項目
(第 12~14 章)中,你將創建一個類似於《太空入侵者》的射擊游戲。這個游戲名為《外星人入侵》,它包含多個難度不斷增加的等級。完成這個項目後,你就能夠自己動手開發
2D 游戲了。
第二個項目(第 15~17 章)介紹數據可視化。數據科學家的目標是通過各種可視化技術來搞懂海量信息。你將使用通過代碼生成的數據集、已經從網路下載下來的數據集以及程式
自動下載的數據集。完成這個項目後,你將能夠編寫能對大型數據集進行篩選的程式,並以可視化方式將篩選出來的數據呈現出來。
在第三個項目(第 18~20 章)中,你將創建一個名為 “ 學習筆記 ” 的小型 Web 應用程式。這個項目能夠讓用戶將學到的與特定主題相關的概念記錄下來。你將能夠分別記錄不同的主
題,還可以讓其他人建立賬戶並開始記錄自己的學習筆記。你還將學習如何部署這個項目,讓任何人都能夠通過網路訪問它,而不管他身處何方。



第 1 章 起步
1.1  搭建編程環境
1.1.1   Python 2 和 Python 3
1.1.2  運行 Python 代碼片段
1.1.3   Hello World 程式
1.2  在不同操作系統中搭建 Python 編程環境
1.2.1  在 Linux 系統中搭建 Python 編程環境
1.2.2  在 OS X 系統中搭建 Python 編程環境
1.2.3  在 Windows 系統中搭建 Python 編程環境
1.3  解決安裝問題
1.4  從終端運行 Python 程式
1.4.1  在 Linux 和 OS X 系統中從終端運行 Python 程式
1.4.2  在 Windows 系統中從終端運行 Python 程式
1.5  小結
第 2 章 變數和簡單數據類型
2.1  運行 hello_world.py 時發生的情況
2.2  變數
2.2.1  變數的命名和使用
2.2.2  使用變數時避免命名錯誤
2.3  字元串
2.3.1  使用方法修改字元串的大小寫
2.3.2  合併(拼接)字元串
2.3.3  使用製表符或換行符來添加空白
2.3.4  刪除空白
2.3.5  使用字元串時避免語法錯誤
2.3.6   Python 2 中的 print 語句
2.4  數字
2.4.1  整數
2.4.2  浮點數
2.4.3  使用函數 str() 避免類型錯誤
2.4.4   Python 2 中的整數
2.5  註釋
2.5.1  如何編寫註釋
2.5.2  該編寫什麼樣的註釋
2.6   Python 之禪
2.7  小結
第 3 章 列表簡介
3.1  列表是什麼
3.1.1  訪問列表元素
3.1.2  索引從 0 而不是 1 開始
3.1.3  使用列表中的各個值
3.2  修改、添加和刪除元素
3.2.1  修改列表元素
3.2.2  在列表中添加元素
3.2.3  從列表中刪除元素
3.3  組織列表
3.3.1  使用方法 sort() 對列表進行永久性排序
3.3.2  使用函數 sorted() 對列表進行臨時排序
3.3.3  倒著列印列表
3.3.4  確定列表的長度
3.4  使用列表時避免索引錯誤
3.5  小結
第 4 章 操作列表
4.1  遍歷整個列表
4.1.1  深入地研究迴圈
4.1.2  在 for 迴圈中執行更多的操作
4.1.3  在 for 迴圈結束後執行一些操作
4.2  避免縮進錯誤
4.2.1  忘記縮進
4.2.2  忘記縮進額外的代碼行
4.2.3  不必要的縮進
4.2.4  迴圈後不必要的縮進
4.2.5  遺漏了冒號
4.3  創建數值列表
4.3.1  使用函數 range()
4.3.2  使用 range() 創建數字列表
4.3.3  對數字列表執行簡單的統計計算
4.3.4  列表解析
4.4  使用列表的一部分
4.4.1  切片
4.4.2  遍歷切片
4.4.3  複製列表
4.5  元組
4.5.1  定義元組
4.5.2  遍歷元組中的所有值
4.5.3  修改元組變數
4.6  設置代碼格式
4.6.1  格式設置指南
4.6.2  縮進
4.6.3  行長
4.6.4  空行
4.6.5  其他格式設置指南
4.7  小結
第 5 章  if 語句
5.1  一個簡單示例
5.2  條件測試
5.2.1  檢查是否相等
5.2.2  檢查是否相等時不考慮大小寫
5.2.3  檢查是否不相等
5.2.4  比較數字
5.2.5  檢查多個條件
5.2.6  檢查特定值是否包含在列表中
5.2.7  檢查特定值是否不包含在列表中
5.2.8  布爾表達式
5.3   if 語句
5.3.1  簡單的 if 語句
5.3.2   if-else 語句
5.3.3   if-elif-else 結構
5.3.4  使用多個 elif 代碼塊
5.3.5  省略 else 代碼塊
5.3.6  測試多個條件
5.4  使用 if 語句處理列表
5.4.1  檢查特殊元素
5.4.2  確定列表不是空的
5.4.3  使用多個列表
5.5  設置 if 語句的格式
5.6  小結
第 6 章 字典
6.1  一個簡單的字典
6.2  使用字典
6.2.1  訪問字典中的值
6.2.2  添加鍵 — 值對
6.2.3  先創建一個空字典
6.2.4  修改字典中的值
6.2.5  刪除鍵 — 值對
6.2.6  由類似對象組成的字典
6.3  遍歷字典
6.3.1  遍歷所有的鍵 — 值對
6.3.2  遍歷字典中的所有鍵
6.3.3  按順序遍歷字典中的所有鍵
6.3.4  遍歷字典中的所有值
6.4  嵌套
6.4.1  字典列表
6.4.2  在字典中存儲列表
6.4.3  在字典中存儲字典
6.5  小結
第 7 章 用戶輸入和 while 迴圈
7.1  函數 input() 的工作原理
7.1.1  編寫清晰的程式
7.1.2  使用 int() 來獲取數值輸入
7.1.3  求模運算符
7.1.4  在 Python 2.7 中獲取輸入
7.2   while 迴圈簡介
7.2.1  使用 while 迴圈
7.2.2  讓用戶選擇何時退出
7.2.3  使用標誌
7.2.4  使用 break 退出迴圈
7.2.5  在迴圈中使用 continue
7.2.6  避免無限迴圈
7.3  使用 while 迴圈來處理列表和字典
7.3.1  在列表之間移動元素
7.3.2  刪除包含特定值的所有列表元素
7.3.3  使用用戶輸入來填充字典
7.4  小結
第 8 章 函數
8.1  定義函數
8.1.1  向函數傳遞信息
8.1.2  實參和形參
8.2  傳遞實參
8.2.1  位置實參
8.2.2  關鍵字實參
8.2.3  預設值
8.2.4  等效的函數調用
8.2.5  避免實參錯誤
8.3  返回值
8.3.1  返回簡單值
8.3.2  讓實參變成可選的
8.3.3  返回字典
8.3.4  結合使用函數和 while 迴圈
8.4  傳遞列表
8.4.1  在函數中修改列表
8.4.2  禁止函數修改列表
8.5  傳遞任意數量的實參
8.5.1  結合使用位置實參和任意數量實參
8.5.2  使用任意數量的關鍵字實參
8.6  將函數存儲在模塊中
8.6.1  導入整個模塊
8.6.2  導入特定的函數
8.6.3  使用 as 給函數指定別名
8.6.4  使用 as 給模塊指定別名
8.6.5  導入模塊中的所有函數
8.7  函數編寫指南
8.8  小結
第 9 章 類
9.1  創建和使用類
9.1.1  創建 Dog 類
9.1.2  根據類創建實例
9.2  使用類和實例
9.2.1   Car 類
9.2.2  給屬性指定預設值
9.2.3  修改屬性的值
9.3  繼承
9.3.1  子類的方法 __init__()
9.3.2   Python 2.7 中的繼承
9.3.3  給子類定義屬性和方法
9.3.4  重寫父類的方法
9.3.5  將實例用作屬性
9.3.6  模擬實物
9.4  導入類
9.4.1  導入單個類
9.4.2  在一個模塊中存儲多個類
9.4.3  從一個模塊中導入多個類
9.4.4  導入整個模塊
9.4.5  導入模塊中的所有類
9.4.6  在一個模塊中導入另一個模塊
9.4.7  自定義工作流程
9.5   Python 標準庫
9.6  類編碼風格
9.7  小結
第 10 章 文件和異常
10.1  從文件中讀取數據
10.1.1  讀取整個文件
10.1.2  文件路徑
10.1.3  逐行讀取
10.1.4  創建一個包含文件各行內容的列表
10.1.5  使用文件的內容
10.1.6  包含一百萬位的大型文件
10.1.7  圓周率值中包含你的生日嗎
10.2  寫入文件
10.2.1  寫入空文件
10.2.2  寫入多行
10.2.3  附加到文件
10.3  異常
10.3.1  處理 ZeroDivisionError 異常
10.3.2  使用 try-except 代碼塊
10.3.3  使用異常避免崩潰
10.3.4   else 代碼塊
10.3.5  處理 FileNotFoundError 異常
10.3.6  分析文本
10.3.7  使用多個文件
10.3.8  失敗時一聲不吭
10.3.9  決定報告哪些錯誤
10.4  存儲數據
10.4.1  使用 json.dump() 和 json.load()
10.4.2  保存和讀取用戶生成的數據
10.4.3  重構
10.5  小結
第 11 章 測試代碼
11.1  測試函數
11.1.1  單元測試和測試用例
11.1.2  可通過的測試
11.1.3  不能通過的測試
11.1.4  測試未通過時怎麼辦
11.1.5  添加新測試
11.2  測試類
11.2.1  各種斷言方法
11.2.2  一個要測試的類
11.2.3  測試 AnonymousSurvey 類
11.2.4  方法 setUp()
11.3  小結
第二部分 項目
項目 1  外星人入侵
第 12 章 武裝飛船
12.1  規劃項目
12.2  安裝 Pygame
12.2.1  使用 pip 安裝 Python 包
12.2.2  在 Linux 系統中安裝 Pygame
12.2.3  在 OS X 系統中安裝 Pygame
12.2.4  在 Windows 系統中安裝 Pygame
12.3  開始游戲項目
12.3.1  創建 Pygame 視窗以及響應用戶輸入
12.3.2  設置背景色
12.3.3  創建設置類
12.4  添加飛船圖像
12.4.1  創建 Ship 類
12.4.2  在屏幕上繪製飛船
12.5  重構:模塊 game_functions
12.5.1  函數 check_events()
12.5.2  函數 update_screen()
12.6  駕駛飛船
12.6.1  響應按鍵
12.6.2  允許不斷移動
12.6.3  左右移動
12.6.4  調整飛船的速度
12.6.5  限制飛船的活動範圍
12.6.6  重構 check_events()
12.7  簡單回顧
12.7.1   alien_invasion.py
12.7.2   settings.py
12.7.3   game_functions.py
12.7.4   ship.py
12.8  射擊
12.8.1  添加子彈設置
12.8.2  創建 Bullet 類
12.8.3  將子彈存儲到編組中
12.8.4  開火
12.8.5  刪除已消失的子彈
12.8.6  限制子彈數量
12.8.7  創建函數 update_bullets()
12.8.8  創建函數 fire_bullet()
12.9  小結
第 13 章 外星人
13.1  回顧項目
13.2  創建第一個外星人
13.2.1  創建 Alien 類
13.2.2  創建 Alien 實例
13.2.3  讓外星人出現在屏幕上
13.3  創建一群外星人
13.3.1  確定一行可容納多少個外星人
13.3.2  創建多行外星人
13.3.3  創建外星人群
13.3.4  重構 create_fleet()
13.3.5  添加行
13.4  讓外星人群移動
13.4.1  向右移動外星人
13.4.2  創建表示外星人移動方向的設置
13.4.3  檢查外星人是否撞到了屏幕邊緣
13.4.4  向下移動外星人群並改變移動方向
13.5  射殺外星人
13.5.1  檢測子彈與外星人的碰撞
13.5.2  為測試創建大子彈
13.5.3  生成新的外星人群
13.5.4  提高子彈的速度
13.5.5  重構 update_bullets()
13.6  結束游戲
13.6.1  檢測外星人和飛船碰撞
13.6.2  響應外星人和飛船碰撞
13.6.3  有外星人到達屏幕底端
13.6.4  游戲結束
13.7  確定應運行游戲的哪些部分
13.8  小結
記分
14.1  添加 Play 按鈕
14.1.1  創建 Button 類
14.1.2  在屏幕上繪製按鈕
14.1.3  開始游戲
14.1.4  重置游戲
14.1.5  將 Play 按鈕切換到非活動狀態
14.1.6  隱藏游標
14.2  提高等級
14.2.1  修改速度設置
14.2.2  重置速度
14.3  記分
14.3.1  顯示得分
14.3.2  創建記分牌
14.3.3  在外星人被消滅時更新得分
14.3.4  將消滅的每個外星人的點數都計入得分
14.3.5  提高點數
14.3.6  將得分圓整
14.3.7  最高得分
14.3.8  顯示等級
14.3.9  顯示餘下的飛船數
14.4  小結
項目 2  數據可視化
第 15 章 生成數據
15.1  安裝 matplotlib
15.1.1  在 Linux 系統中安裝 matplotlib
15.1.2  在 O

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 基本介紹 適配器模式將某個類的介面轉換成客戶端期望的另一個介面表示,主要目的是相容性,讓原本因介面不匹配不能一起工作的兩個類可以協同工作。 適配器模式屬於結構性模式,主要分為三類:類適配器模式、對象適配器模式、介面適配器模式。 類適配器模式 什麼是類適配器模式 類適配器模式介紹:Adapter類,通 ...
  • 前言 該腳本的代碼大部分是參考自阿裡雲的官方幫助文檔。 1, 腳本語言使用的是python, 我個人只是瞭解python,沒有太深入的知識功底 2, 腳本代碼我會儘量詳細地添加註釋說明,有問題歡迎留言交流,但回覆可能不會那麼及時。 前置條件 1、功能變數名稱是在阿裡雲購買的 (我的功能變數名稱本身就是阿裡雲買的,其 ...
  • 資料庫版本管理工具 什麼是資料庫版本管理? 做過開發的小伙伴們都知道,實現一個需求時,一般情況下都需要設計到資料庫表結構的修改。那麼我們怎麼能保證項目多人開發時,多個資料庫環境(測試,生產環境)能夠保持一致呢?在沒有資料庫版本管理工具之前,需要將資料庫修改腳本拷貝到每個資料庫環境進行執行。而有了數據 ...
  • 一、常量和C預處理器 1.符號常量(symbolic constant) 編譯程式的時候程式中的符號常量都會被實際字面量所替換,這一過程稱為編譯時替換 格式:末尾不加分號,中間不加等號,字面量可以是數字,字元,字元串等 #define CHANGLIANGNAME 890 2.const限定符 C9 ...
  • 首先,回顧一下基礎的巨集操作: C語言巨集 #與## #的作用是字元串化:在一個巨集中的參數前面使用一個#,預處理器會把這個參數轉換為一個字元數組 #define ERROR_LOG(info) fprintf(stderr,"error:"#info"\n"); 則有: ERROR_LOG("add") ...
  • 全棧的自我修養: 0005 Java 包掃描實現和應用(Jar篇) It's not the altitude, it's the attitude. 決定一切的不是高度而是態度。 Table of Contents 依賴的 Jar 思路 完整代碼 整合後代碼 如果你曾經使用過 Spring, 那你 ...
  • 目錄: 一、什麼是介面? 二、介面測試流程 三、介面測試工具 四、介面測試技術點 五、總結 導讀: 為什麼要做介面測試 介面測試本質上是功能測試的一種,屬於後端伺服器測試。但是它的影響範圍要遠廣於web,app層面。原因很簡單,因為目前很多公司,服務架構都是多端共用一套介面。和用戶直接交互的UI界面 ...
  • Python 是一門常用的編程語言,它不僅上手容易,而且還擁有豐富的支持庫。對經常需要針對自己所 處的特定場景編寫專用工具的黑客、電腦犯罪調查人員、滲透測試師和安全工程師來說,Python 的這些 特點可以幫助他們又快又好地完成這一任務,以極少的代碼量實現所需的功能。Python絕技:運用Pyth ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...