《Python從入門到精通(第3版)》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Python進行程序開發應該掌握的各方面技術。全書共分27章,包括初識Python、Python語言基礎、運算符與表達式、流程控制語句、列表和元組、字典和集合、字符串、Python中使用正則表達式、函數、面向對象程序設計、模塊、文件及目錄操作、操作數據庫、使用進程和線程、網絡編程、異常處理及程序調試、Pygame游戲編程、推箱子游戲、網絡爬蟲開發、火車票分析助手、數據可視化、京東電商銷售數據分析與預測、Web編程、Flask框架、e起去旅行網站、Python自動化辦公、AI圖像識別工具等內容。書中所有知識都結合具體實例進行介紹,涉及的程序代碼都給出了詳細的注釋,讀者可輕松領會Python程序開發的精髓,快速提升開發技能。
叢書說明:軟件開發視頻大講堂叢書第1版于2008年8月出版,因其編寫細膩、易學實用、配備海量學習資源和全程視頻等,在軟件開發類圖書市場上產生了很大反響,絕大部分品種在全國軟件開發零售圖書排行榜中名列前茅,2009年多個品種被評為全國優秀暢銷書。
軟件開發視頻大講堂叢書第2版于2010年8月出版,第3版于2012年8月出版,第4版于2016年10月出版,第5版于2019年3月出版,第6版于2021年7月出版。十五年間反復錘煉,打造經典。叢書迄今累計重印680多次,銷售400多萬冊,不僅深受廣大程序員的喜愛,還被百余所高校選為計算機、軟件等相關專業的教學參考用書。
軟件開發視頻大講堂叢書第7版在繼承前6版所有優點的基礎上,進行了大幅度的修訂。第一,根據當前的技術趨勢與熱點需求調整品種,拓寬了程序員崗位就業技能用書;第二,對圖書內容進行了深度更新、優化,如優化了內容布置,彌補了講解疏漏,將開發環境和工具更新為新版本,增加了對新技術點的剖析,將項目替換為更能體現當今IT開發現狀的熱門項目等,使其更與時俱進,更適合讀者學習;第三,改進了教學微課視頻,為讀者提供更好的學習體驗;第四,升級了開發資源庫,提供了程序員入門學習技巧掌握實例訓練項目開發求職面試等各階段的海量學習資源;第五,為了方便教學,制作了全新的教學課件PPT。
Python被稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C )很輕松地聯結在一起。它是1989年由荷蘭人Guido van Rossum發明的一種面向對象的解釋型高級編程語言。由于Python語言簡潔、易讀,非常適合編程入門,現在很多學校都開設了這門課程,甚至有些小學也開設了Python課程。連小學生都能學會的語言,您還在等什么呢?快快加入Python開發者的陣營吧!
當前,關于Python的書籍有很多,但是真正適合初學者學習的書籍并不是很多。本書從初學者的角度出發,循序漸進地講解使用Python開發項目時應該掌握的各項技術。
本書內容
本書提供了從Python入門到編程高手所必需的各類知識,共分3篇。
第1篇:基礎知識。本篇包括Python簡介、搭建Python開發環境、Python開發工具、Python語法特點、Python中的變量、基本數據類型、基本輸入和輸出、運算符與表達式、流程控制語句、列表和元組、字典和集合、字符串等Python語言基礎方面的知識。講解過程結合了大量的圖示、舉例等,同時配有高清視頻,可使讀者快速掌握Python語言,并為以后編程奠定堅實的基礎。
第2篇:進階提高。本篇包括正則表達式、函數、面向對象程序設計、模塊、文件及目錄操作、操作數據庫、進程和線程、網絡編程、異常處理及程序調試等Python進階知識。學習完本篇,讀者將可以掌握更深一層的Python開發技術。
第3篇:項目應用。本篇詳解Python六大熱門應用方向,涉及游戲開發、網絡爬蟲、數據可視化、Web開發、自動化辦公、人工智能開發等領域,每個方向都在剖析技術儲備之后進行設計并實現對應的熱門項目。項目主要包括推箱子游戲(游戲開發)、火車票分析助手(網絡爬蟲)、京東電商數據分析與預測(數據可視化)、e起去旅行網站(Web開發)、Python辦公自動化(操作Word、Excel、PPT、電子郵件)、AI圖像識別工具。通過本篇,可使讀者將所學的Python基礎知識與當前的Python開發熱點無縫對接,快速掌握Python項目開發的精髓,為以后的開發積累經驗,成就Python開發無限可能。
本書特點
由淺入深,循序漸進。本書以零基礎入門讀者和初、中級程序員為對象,讓讀者先從Python語言基礎學起,然后學習Python的進階技術,最后學習Python六大熱門應用方向及對應的實用項目。在講解過程中,步驟詳盡,版式新穎,讀者在閱讀中可以一目了然,從而快速掌握書中內容。
微課視頻,講解詳盡。為便于讀者直觀感受程序開發的全過程,書中重要章節配備了視頻講解(共271集,時長41小時),使用手機掃描章節標題一側的二維碼,即可觀看學習。初學者可輕松入門,感受編程的快樂和成就感,進一步增強學習的信心。
基礎示例 綜合練習 項目案例,實戰為王。通過例子學習是最好的學習方式,本書核心知識講解通過一個知識點、一個示例、一個結果、一段評析、一個綜合應用的模式,詳盡透徹地講述了實際開發中所需的各類知識。全書共計有127個應用實例,32個綜合練習,5個項目案例,為初學者打造學習 訓練的強化實戰學習環境。
精彩欄目,貼心提醒。本書根據需要在各章使用了很多注意說明誤區警示等小欄目,有助于讀者在學習過程中能夠輕松地理解相關知識點及概念,進而快速掌握相應技術的應用技巧。
讀者對象:初學編程的自學者;編程愛好者;大中專院校的老師和學生;相關培訓機構的老師和學員;做畢業設計的學生;初、中級程序開發人員;程序測試及維護人員;參加實習的菜鳥程序員
本書學習資源
本書提供了大量的輔助學習資源,讀者需刮開圖書封底的防盜碼,掃描并綁定微信后,獲取學習權限。
同步教學微課
學習書中知識時,掃描章節名稱處的二維碼,可在線觀看教學視頻。
在線開發資源庫
本書配備了強大的Python開發資源庫,包括技術資源庫、技巧資源庫、實例資源庫、項目資源庫、源碼資源庫、視頻資源庫。掃描二維碼,可登錄明日科技網站,獲取Python開發資源庫一年的免費使用權限。
學習答疑
關注清大文森學堂公眾號,可獲取本書的源代碼、PPT課件、視頻等資源,加入本書的學習交流群,參加圖書直播答疑。
Python開發訓練營
關注清大文森學堂公眾號,可參加Python訓練營,獲取Python就業知識、Python技術/行業熱點動態、面試輔導等直播課。
讀者掃描圖書封底的文泉云盤二維碼,或登錄清華大學出版社網站,可在對應圖書頁面下查閱各類學習資源的獲取方式。
感謝您選擇本書,希望本書能成為您編程路上的領航者。
零門檻編程,一切皆有可能。
祝讀書快樂!
第1篇 基礎知識
第1章 初識Python
視頻講解:77分鐘
1.1 Python簡介
1.1.1 什么是Python
1.1.2 Python的版本
1.1.3 Python能做什么
1.2 搭建Python開發環境
1.2.1 開發環境概述
1.2.2 安裝Python
1.2.3 編寫第一個Python程序
1.2.4 運行已經編寫好的.py文件
1.3 Python開發工具
1.3.1 使用自帶的IDLE
1.3.2 使用Visual Studio Code
1.3.3 常用的第三方開發工具
1.4 實踐與練習
第2章 Python語言基礎
視頻講解:145分鐘
2.1 Python語法特點
2.1.1 注釋規則
2.1.2 代碼縮進
2.1.3 編碼規范
2.2 Python中的變量
2.2.1 保留字與標識符
2.2.2 理解Python中的變量
2.2.3 定義變量
2.3 基本數據類型
2.3.1 數字
2.3.2 字符串
2.3.3 布爾類型
2.3.4 數據類型轉換
2.4 基本輸入和輸出
2.4.1 使用input()函數輸入
2.4.2 使用print()函數輸出
2.4.3 使用pprint()函數輸出
2.5 實踐與練習
第3章 運算符與表達式
視頻講解:70分鐘
3.1 運算符
3.1.1 算術運算符
3.1.2 賦值運算符
3.1.3 比較(關系)運算符
3.1.4 邏輯運算符
3.1.5 位運算符
3.2 運算符的優先級
3.3 條件表達式
3.4 實踐與練習
第4章 流程控制語句
視頻講解:139分鐘
4.1 程序結構
4.2 選擇語句
4.2.1 最簡單的if語句
4.2.2 if…else語句
4.2.3 if…elif…else語句
4.2.4 選擇語句的嵌套
4.2.5 match…case語句
4.3 循環語句
4.3.1 while循環
4.3.2 for循環
4.3.3 循環嵌套
4.4 break、continue和pass語句
4.4.1 break語句
4.4.2 continue語句
4.4.3 pass語句
4.5 實踐與練習
第5章 列表和元組
視頻講解:202分鐘
5.1 序列概述
5.1.1 索引
5.1.2 切片
5.1.3 序列相加
5.1.4 乘法
5.1.5 檢查某個元素是否是序列的成員(元素)
5.1.6 計算序列的長度、最大值和最小值
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 元組
5.3.1 元組的創建和刪除
5.3.2 訪問元組元素
5.3.3 修改元組
5.3.4 元組推導式
5.3.5 元組與列表的區別
5.4 實踐與練習
第6章 字典和集合
視頻講解:86分鐘
6.1 字典
6.1.1 字典的創建和刪除
6.1.2 訪問字典
6.1.3 遍歷字典
6.1.4 添加、修改和刪除字典元素
6.1.5 字典推導式
6.2 集合
6.2.1 創建集合
6.2.2 向集合中添加和刪除元素
6.2.3 集合的交集、并集和差集運算
6.3 實踐與練習
第7章 字符串
視頻講解:118分鐘
7.1 字符串編碼轉換
7.1.1 使用encode()方法編碼
7.1.2 使用decode()方法解碼
7.2 字符串常用操作
7.2.1 拼接字符串
7.2.2 計算字符串的長度
7.2.3 截取字符串
7.2.4 分割、合并字符串
7.2.5 檢索字符串
7.2.6 字母的大小寫轉換
7.2.7 去除字符串中的空格和特殊字符
7.2.8 格式化字符串
7.3 實踐與練習
第2篇 進階提高
第8章 Python中使用正則表達式
視頻講解:45分鐘
8.1 正則表達式語法
8.1.1 行定位符
8.1.2 元字符
8.1.3 限定符
8.1.4 字符類
8.1.5 排除字符
8.1.6 選擇字符
8.1.7 轉義字符
8.1.8 分組
8.1.9 在Python中使用正則表達式語法
8.2 使用re模塊實現正則表達式操作
8.2.1 匹配字符串
8.2.2 替換字符串
8.2.3 使用正則表達式分割字符串
8.3 實踐與練習
第9章 函數
視頻講解:118分鐘
9.1 函數的創建和調用
9.1.1 創建一個函數
9.1.2 調用函數
9.2 參數傳遞
9.2.1 了解形式參數和實際參數
9.2.2 位置參數
9.2.3 關鍵字參數
9.2.4 為參數設置默認值
9.2.5 可變參數
9.2.6 類型聯合運算符
9.3 返回值
9.4 變量的作用域
9.4.1 局部變量
9.4.2 全局變量
9.5 匿名函數
9.6 實踐與練習
第10章 面向對象程序設計
視頻講解:109分鐘
10.1 面向對象概述
10.1.1 對象
10.1.2 類
10.1.3 面向對象程序設計的特點
10.2 類的定義和使用
10.2.1 定義類
10.2.2 創建類的實例
10.2.3 創建__init__()方法
10.2.4 創建類的成員并訪問
10.2.5 訪問限制
10.3 屬性
10.3.1 創建用于計算的屬性
10.3.2 為屬性添加安全保護機制
10.4 繼承
10.4.1 繼承的基本語法
10.4.2 方法重寫
10.4.3 派生類中調用基類的__init__()方法
10.5 實踐與練習
第11章 模塊
視頻講解:105分鐘
11.1 模塊概述
11.2 自定義模塊
11.2.1 創建模塊
11.2.2 使用import語句導入模塊
11.2.3 使用from…import語句導入模塊
11.2.4 模塊搜索目錄
11.3 Python中的包
11.3.1 Python程序的包結構
11.3.2 創建和使用包
11.3.3 以主程序的形式執行
11.4 引用其他模塊
11.4.1 導入和使用標準模塊
11.4.2 第三方模塊的下載與安裝
11.5 實踐與練習
第12章 文件及目錄操作
視頻講解:140分鐘
12.1 基本文件操作
12.1.1 創建和打開文件
12.1.2 關閉文件
12.1.3 打開文件時使用with語句
12.1.4 寫入文件內容
12.1.5 讀取文件
12.2 目錄操作
12.2.1 os和os.path模塊
12.2.2 路徑
12.2.3 判斷目錄是否存在
12.2.4 創建目錄
12.2.5 刪除目錄
12.2.6 遍歷目錄
12.3 高級文件操作
12.3.1 刪除文件
12.3.2 重命名文件和目錄
12.3.3 獲取文件基本信息
12.4 實踐與練習
第13章 操作數據庫
視頻講解:79分鐘
13.1 數據庫編程接口
13.1.1 連接對象
13.1.2 游標對象
13.2 使用SQLite
13.2.1 創建數據庫文件
13.2.2 操作SQLite
13.3 使用MySQL
13.3.1 下載和安裝MySQL
13.3.2 安裝PyMySQL
13.3.3 連接數據庫
13.3.4 創建數據表
13.3.5 操作MySQL數據表
13.4 實踐與練習
第14章 使用進程和線程
視頻講解:104分鐘
14.1 什么是進程
14.2 創建進程的常用方式
14.2.1 使用multiprocessing模塊創建進程
14.2.2 使用Process子類創建進程
14.2.3 使用進程池Pool創建進程
14.3 進程間通信
14.3.1 隊列簡介
14.3.2 多進程隊列的使用
14.3.3 使用隊列在進程間通信
14.4 什么是線程
14.5 創建線程
14.5.1 使用threading模塊創建線程
14.5.2 使用Thread子類創建線程
14.6 線程間通信
14.6.1 什么是互斥鎖
14.6.2 使用互斥鎖
14.6.3 使用隊列在線程間進行通信
14.7 異步編程asyncio模塊
14.7.1 什么是異步編程
14.7.2 創建協程任務
14.7.3 使用協程執行多個耗時任務
14.7.4 協程嵌套與列表推導式
14.8 實踐與練習
第15章 網絡編程
視頻講解:60分鐘
15.1 網絡基礎
15.1.1 為什么要使用通信協議
15.1.2 TCP/IP簡介
15.1.3 UDP簡介
15.1.4 socket簡介
15.2 TCP編程
15.2.1 創建TCP服務器
15.2.2 創建TCP客戶端
15.2.3 執行TCP服務器和客戶端
15.3 UDP編程
15.3.1 創建UDP服務器
15.3.2 創建UDP客戶端
15.3.3 執行UDP服務器和客戶端
15.4 實踐與練習
第16章 異常處理及程序調試
視頻講解:60分鐘
16.1 異常概述
16.2 異常處理語句
16.2.1 try…except語句
16.2.2 try…except…else語句
16.2.3 try…except…finally語句
16.2.4 使用raise語句拋出異常
16.2.5 更清晰的錯誤信息
16.3 程序調試
16.3.1 使用自帶的IDLE進行程序調試
16.3.2 使用assert語句調試程序
16.4 實踐與練習
第3篇 項目應用
游戲開發與項目
第17章 Pygame游戲編程
視頻講解:50分鐘
17.1 初識Pygame
17.1.1 安裝Pygame
17.1.2 Pygame常用模塊
17.2 窗口坐標系與pygame.Rect對象
17.2.1 窗口坐標系
17.2.2 pygame.Rect對象
17.3 事件偵測
17.3.1 事件檢索
17.3.2 處理鍵盤事件
17.3.3 自定義事件
17.4 位圖圖形
17.4.1 位圖基礎
17.4.2 Surface對象
17.4.3 Rect矩形對象
17.5 音頻控制
17.5.1 設備的初始化
17.5.2 加載聲音文件
17.5.3 控制聲音流
第18章 推箱子游戲
視頻講解:3分鐘
18.1 需求分析
18.2 案例準備
18.3 業務流程
18.4 實現過程
18.4.1 文件夾組織結構
18.4.2 搭建主框架
18.4.3 繪制游戲地圖
18.4.4 用鍵盤控制角色移動
18.4.5 判斷游戲是否通關
18.4.6 記錄步數
18.4.7 撤銷角色已移動功能
18.4.8 重玩此關的實現
18.4.9 游戲進入下一關
爬蟲開發與項目
第19章 網絡爬蟲開發
視頻講解:90分鐘
19.1 初識網絡爬蟲
19.1.1 網絡爬蟲概述
19.1.2 網絡爬蟲的分類
19.1.3 網絡爬蟲的基本原理
19.2 網絡爬蟲的常用技術
19.2.1 Python的網絡請求
19.2.2 請求headers處理
19.2.3 網絡超時
19.2.4 代理服務
19.2.5 HTML解析之BeautifulSoup
19.3 網絡爬蟲開發常用框架Scrapy
19.3.1 安裝Scrapy爬蟲框架
19.3.2 創建Scrapy項目
19.3.3 創建爬蟲
第20章 火車票分析助手
視頻講解:4分鐘
20.1 需求分析
20.2 案例準備
20.3 業務流程
20.4 主窗體的UI設計
20.4.1 主窗體的布局
20.4.2 主窗體顯示效果
20.5 爬取數據
20.5.1 獲取請求地址與參數
20.5.2 下載數據文件
20.5.3 查詢所有車票信息
20.5.4 臥鋪票的查詢與分析
20.5.5 查詢車票起售時間
20.6 窗體的數據顯示
20.6.1 車票查詢區域的數據顯示
20.6.2 臥鋪售票分析區域的數據顯示
20.6.3 臥鋪車票數量走勢圖的顯示
20.6.4 查詢車票起售時間的數據顯示
數據可視化與項目
第21章 數據可視化
視頻講解:225分鐘
21.1 初識數據可視化
21.1.1 什么是數據可視化
21.1.2 數據可視化的作用
21.1.3 數據可視化常用工具
21.2 NumPy數值計算
21.2.1 安裝NumPy
21.2.2 NumPy的數據類型
21.2.3 ndarray數組對象
21.2.4 dtype數據類型對象
21.2.5 數組的基本操作
21.3 pandas數據處理
21.3.1 pandas數據結構
21.3.2 讀寫數據
21.3.3 數據操作
21.4 Matplotlib繪制常用圖表
21.4.1 繪制柱形圖
21.4.2 繪制折線圖
21.4.3 繪制散點圖
21.4.4 繪制餅形圖
第22章 京東電商銷售數據分析與預測
視頻講解:3分鐘
22.1 需求分析
22.2 案例準備
22.3 業務流程
22.4 分析方法
22.5 實現過程
22.5.1 日期數據統計并顯示
22.5.2 銷售收入分析
22.5.3 銷售收入與廣告費相關性分析
22.5.4 銷售收入預測
22.5.5 預測評分
Web開發與項目
第23章 Web編程
視頻講解:93分鐘
23.1 Web基礎
23.1.1 HTTP協議
23.1.2 Web服務器
23.1.3 前端基礎
23.1.4 靜態服務器
23.2 WSGI接口
23.2.1 CGI簡介
23.2.2 WSGI簡介
23.2.3 定義WSGI接口
23.2.4 運行WSGI服務
23.3 Web框架
23.3.1 什么是Web框架
23.3.2 Python中常用的Web框架
第24章 Flask框架
視頻講解:75分鐘
24.1 Flask簡介
24.1.1 安裝虛擬環境
24.1.2 安裝Flask
24.1.3 第一個Flask程序
24.2 Flask基礎
24.2.1 開啟調試模式
24.2.2 路由
24.2.3 靜態文件
24.2.4 藍圖
24.3 模板
24.3.1 渲染模板
24.3.2 變量
24.3.3 控制結構
24.4 Web表單
24.4.1 CSRF保護和驗證
24.4.2 表單類
24.4.3 把表單渲染成HTML
第25章 e起去旅行網站
視頻講解:147分鐘
25.1 系統功能設計
25.1.1 系統功能結構
25.1.2 系統業務流程
25.2 系統開發bi備
25.2.1 系統開發環境
25.2.2 文件夾組織結構
25.3 數據庫設計
25.3.1 數據庫概要說明
25.3.2 數據表模型
25.3.3 數據表關系
25.4 前臺用戶模塊設計
25.4.1 會員注冊功能實現
25.4.2 會員登錄功能實現
25.4.3 會員退出功能實現
25.5 前臺首頁模塊設計
25.5.1 推薦景區功能實現
25.5.2 推薦地區功能實現
25.5.3 搜索景區功能實現
25.6 景區模塊設計
25.6.1 查看景區功能實現
25.6.2 查看游記功能實現
25.6.3 收藏景區功能實現
25.6.4 查看收藏景區功能實現
25.7 關于我們模塊設計
25.8 后臺模塊設計
25.8.1 管理員登錄功能實現
25.8.2 景區管理功能實現
25.8.3 地區管理功能實現
25.8.4 游記管理功能實現
25.8.5 會員管理功能實現
25.8.6 日志管理功能實現
Python自動化辦公
第26章 Python自動化辦公
視頻講解:31分鐘
26.1 使用Python操作Word
26.1.1 將Word文件轉換為PDF文件
26.1.2 將多個Word文件合并為一個PDF文件
26.1.3 提取Word文檔目錄
26.1.4 替換Word文檔中的內容
26.1.5 統計并匯總Word文檔中的頁碼
26.2 使用Python操作Excel
26.2.1 爬取數據并將其導出到Excel中
26.2.2 批量復制Excel中的Sheet頁
26.3 使用Python操作PPT
26.4 使用Python操作電子郵件
26.4.1 發送HTML格式電子郵件
26.4.2 發送帶附件的電子郵件
Python人工智能初探
第27章 AI圖像識別工具
視頻講解:94分鐘
27.1 需求分析
27.2 系統設計流程
27.3 系統開發bi備
27.3.1 系統開發環境
27.3.2 文件夾組織結構
27.4 開發前的準備工作
27.4.1 申請百度AI接口
27.4.2 urllib、urllib.request模塊
27.4.3 json模塊
27.5 AI圖像識別工具的開發
27.5.1 根據項目設計制作窗體
27.5.2 添加分類
27.5.3 選擇識別的圖片
27.5.4 銀行卡圖像識別
27.5.5 植物圖像識別
27.5.6 復制識別結果到剪貼板中
附錄A PyCharm開發工具的使用