1. 程式人生 > >月薪3萬的python程序員都看了這本書

月薪3萬的python程序員都看了這本書

ear 解決 條件測試 順序 顏色 窗口 及其 資源 浮點

想必大家都看過吧

Python編程從入門到實踐

全書共有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  刪除倉庫

本文轉載自:python黑洞網 原文鏈接:http://www.pythonheidong.com/blog/article/14/

月薪3萬的python程序員都看了這本書