本書共14章,從Python語言的語法特性開始,介紹了Python的安裝和配置、數(shù)據(jù)類型及表達(dá)式、流程控制、序列和字典、文件處理、函數(shù)等,由淺入深,循序漸進(jìn),逐步引入高級(jí)話題,包括面向?qū)ο缶幊、模塊和包、異常處理、圖形界面編程、數(shù)據(jù)庫編程、網(wǎng)絡(luò)套接字編程、多線程和多進(jìn)程編程、Web開發(fā)等。
李力,男,1982年生,本科學(xué)歷,畢業(yè)于西南大學(xué)計(jì)算機(jī)應(yīng)用專業(yè),研究方向?yàn)樘摂M化技術(shù)與云計(jì)算,具有多年服務(wù)器和數(shù)據(jù)中心運(yùn)維經(jīng)驗(yàn),發(fā)表有十余篇學(xué)術(shù)論文,目前為重慶電子工程職業(yè)學(xué)院計(jì)算機(jī)學(xué)院云計(jì)算專業(yè)骨干教師。
項(xiàng)目1 Python語言概述及安裝、配置 (1)
1.1 任務(wù)1 認(rèn)識(shí)Python語言 (1)
1.1.1 Python的起源和發(fā)展前景 (1)
1.1.2 Python的優(yōu)缺點(diǎn) (2)
1.1.3 Python與云計(jì)算 (5)
1.2 任務(wù)2 下載和安裝Python (6)
1.2.1 Python版本差異 (6)
1.2.2 Python虛擬機(jī)簡介 (6)
1.2.3 下載Python (7)
1.2.4 在Windows環(huán)境下安裝Python (8)
1.2.5 在Windows下配置Python環(huán)境 (8)
1.2.6 在Linux/UNIX下使用Python源代碼安裝Python (9)
1.3 任務(wù)3 使用開發(fā)工具 (11)
1.3.1 使用交互式解釋器 (11)
1.3.2 使用文本編輯器 (11)
1.3.3 使用集成開發(fā)環(huán)境 (12)
1.3.4 使用Python增強(qiáng)工具 (12)
1.4 任務(wù)4 獲取幫助和查看文檔 (13)
1.4.1 查看特定對象的可用操作 (13)
1.4.2 文檔字符串 (14)
1.4.3 使用幫助函數(shù) (14)
1.4.4 使用文檔 (14)
1.5 小結(jié) (14)
1.6 習(xí)題 (15)
項(xiàng)目2 數(shù)據(jù)類型、運(yùn)算符和用戶交互 (16)
2.1 任務(wù)1 掌握Python數(shù)據(jù)類型 (16)
2.1.1 基本數(shù)據(jù)類型 (16)
2.1.2 容器數(shù)據(jù)類型 (17)
2.2 任務(wù)2 掌握運(yùn)算符及其優(yōu)先級(jí) (18)
2.2.1 運(yùn)算符 (18)
2.2.2 運(yùn)算符的優(yōu)先級(jí) (21)
2.3 任務(wù)3 了解Python代碼的規(guī)范性要求 (21)
2.3.1 合法的變量名 (22)
2.3.2 轉(zhuǎn)義字符 (22)
2.3.3 編寫注釋 (23)
2.3.4 單行多語句與單句跨行 (23)
2.4 任務(wù)4 程序設(shè)計(jì):手機(jī)屏幕PPI測算器 (24)
2.4.1 程序功能設(shè)計(jì)與分析 (24)
2.4.2 數(shù)學(xué)運(yùn)算與math模塊 (24)
2.5 任務(wù)5 初步了解Python中的對象和工廠函數(shù) (25)
2.5.1 不可變對象 (25)
2.5.2 可變對象 (26)
2.6 任務(wù)6 了解Python程序的交互方法 (26)
2.6.1 input()函數(shù) (26)
2.6.2 raw_input()函數(shù) (27)
2.6.3 print語句的特性 (27)
2.6.4 格式化輸出 (28)
2.6.5 任務(wù):輸出員工信息表 (29)
2.7 小結(jié) (30)
2.8 習(xí)題 (30)
項(xiàng)目3 流程控制 (31)
3.1 任務(wù)1 了解語句塊和程序流程圖 (31)
3.1.1 語句塊與縮進(jìn) (31)
3.1.2 程序流程圖 (32)
3.2 任務(wù)2 掌握分支結(jié)構(gòu) (32)
3.2.1 單條件分支結(jié)構(gòu) (33)
3.2.2 多條件分支結(jié)構(gòu) (33)
3.2.3 嵌套的分支結(jié)構(gòu) (34)
3.2.4 單句多條件和短路邏輯 (36)
3.2.5 多個(gè)if語句塊 (36)
3.2.6 if語句的三目運(yùn)算形式 (37)
3.3 任務(wù)3 掌握循環(huán)結(jié)構(gòu) (37)
3.3.1 while語句 (37)
3.3.2 break語句 (39)
3.3.3 continue語句 (40)
3.3.4 循環(huán)結(jié)構(gòu)中的else語句 (40)
3.3.5 pass語句 (41)
3.4 掌握高級(jí)循環(huán):for循環(huán)、推導(dǎo)式及生成器 (42)
3.4.1 for循環(huán) (42)
3.4.2 列表推導(dǎo)式 (43)
3.4.3 生成器 (44)
3.5 小結(jié) (46)
3.6 習(xí)題 (46)
項(xiàng)目4 容器數(shù)據(jù)類型:序列、映射和集合 (47)
4.1 任務(wù)1 了解序列類型 (47)
4.1.1 容器數(shù)據(jù)類型簡介 (47)
4.1.2 列表和元祖 (48)
4.1.3 序列的索引和切片操作 (48)
4.1.4 列表常用方法 (50)
4.1.5 列表和數(shù)據(jù)結(jié)構(gòu) (50)
4.1.6 可變對象的復(fù)制 (51)
4.1.7 元組 (53)
4.1.8 工廠函數(shù) (54)
4.2 任務(wù)2 了解字符串 (54)
4.2.1 字符串簡介 (54)
4.2.2 字符串常用方法 (55)
4.2.3 方法和函數(shù)的連續(xù)調(diào)用 (56)
4.3 任務(wù)3 了解字符編碼 (57)
4.3.1 Python代碼中的編碼 (57)
4.3.2 外部數(shù)據(jù)編碼 (58)
4.4 任務(wù)4 了解字典 (58)
4.4.1 字典簡介 (58)
4.4.2 字典的創(chuàng)建和訪問 (59)
4.4.3 鍵必須是可哈希的 (60)
4.4.4 字典相關(guān)方法 (61)
4.4.5 子任務(wù):員工信息系統(tǒng) (61)
4.5 任務(wù)5 了解集合 (63)
4.5.1 集合簡介 (63)
4.5.2 可變集合和不可變集合 (64)
4.6 小結(jié) (65)
4.7 習(xí)題 (65)
項(xiàng)目5 文件操作及系統(tǒng)交互 (66)
5.1 任務(wù)1 認(rèn)識(shí)文件對象 (66)
5.1.1 文件的打開 (66)
5.1.2 文件的讀取 (67)
5.1.3 文件指針操作 (68)
5.1.4 文件的寫入 (68)
5.1.5 文件和編碼 (69)
5.1.6 文件的緩沖 (69)
5.2 任務(wù)2 掌握文件和目錄的管理 (71)
5.2.1 文件的復(fù)制 (71)
5.2.2 文件的刪除 (71)
5.2.3 文件的屬性獲取 (72)
5.2.4 文件的重命名 (72)
5.2.5 目錄的創(chuàng)建 (74)
5.2.6 目錄的刪除 (75)
5.2.7 顯示和改變當(dāng)前目錄 (76)
5.2.8 運(yùn)行系統(tǒng)命令 (76)
5.2.9 帶有參數(shù)的源代碼腳本執(zhí)行方式 (77)
5.2.10 子任務(wù):文本替換程序 (77)
5.3 任務(wù)3 掌握時(shí)間和日期的處理 (78)
5.3.1 時(shí)間戳及時(shí)間元組 (78)
5.3.2 格式化時(shí)間和日期 (79)
5.3.3 程序運(yùn)行時(shí)間控制 (80)
5.3.4 日期的置換 (80)
5.3.5 日期和時(shí)間的差值計(jì)算 (81)
5.4 任務(wù)4 了解序列化 (82)
5.4.1 序列化和反序列化 (82)
5.4.2 JSON和JSON化 (83)
5.5 任務(wù)5 基于文件存儲(chǔ)的用戶賬戶登錄功能 (83)
5.5.1 程序功能設(shè)計(jì) (84)
5.5.2 程序?qū)崿F(xiàn) (84)
5.6 小結(jié) (86)
5.7 習(xí)題 (86)
項(xiàng)目6 函數(shù) (87)
6.1 任務(wù)1 掌握函數(shù)的定義和調(diào)用 (87)
6.1.1 函數(shù)的定義和調(diào)用 (87)
6.1.2 函數(shù)對象賦值 (89)
6.1.3 位置參數(shù) (89)
6.1.4 關(guān)鍵字參數(shù) (90)
6.1.5 默認(rèn)參數(shù) (90)
6.1.6 可變參數(shù)和關(guān)鍵字收集器 (92)
6.1.7 參數(shù)組 (93)
6.2 任務(wù)2 了解函數(shù)的高級(jí)特性和功能 (93)
6.2.1 作用域和名稱空間 (93)
6.2.2 在函數(shù)中操作全局變量 (95)
6.2.3 匿名函數(shù) (95)
6.2.4 用函數(shù)實(shí)現(xiàn)生成器 (96)
6.2.5 子任務(wù):重新實(shí)現(xiàn)file.xreadlines() (97)
6.2.6 遞歸函數(shù) (97)
6.2.7 函數(shù)閉包 (99)
6.2.8 裝飾器 (99)
6.3 任務(wù)3 認(rèn)識(shí)函數(shù)式編程 (101)
6.3.1 什么是函數(shù)式編程 (101)
6.3.2 map() (102)
6.3.3 reduce() (103)
6.3.4 filter() (104)
6.3.5 sorted() (105)
6.3.6 其他相關(guān)函數(shù) (106)
6.4 小結(jié) (106)
6.5 習(xí)題 (107)
項(xiàng)目7 面向?qū)ο缶幊?(108)
7.1 任務(wù)1 了解什么是面向?qū)ο缶幊?(108)
7.1.1 面向?qū)ο笏枷?(108)
7.1.2 對象和類 (109)
7.1.3 封裝 (109)
7.2 任務(wù)2 掌握類和實(shí)例的語法規(guī)則 (110)
7.2.1 類和對象的創(chuàng)建 (110)
7.2.2 類的構(gòu)造方法 (110)
7.2.3 類方法及self參數(shù) (111)
7.2.4 類和對象的屬性 (111)
7.2.5 為實(shí)例添加屬性和方法 (111)
7.2.6 靜態(tài)方法 (112)
7.2.7 靜態(tài)屬性 (114)
7.2.8 私有字段 (114)
7.2.9 私有方法 (115)
7.2.10 嵌套類 (116)
7.2.11 對象的銷毀與回收 (117)
7.3 任務(wù)3 掌握類的繼承和派生 (117)
7.3.1 父類和子類 (118)
7.3.2 繼承 (118)
7.3.3 覆蓋方法 (119)
7.3.4 多重繼承 (119)
7.3.5 鉆石問題 (120)
7.3.6 新式類 (121)
7.4 任務(wù)4 了解類的其他特性和功能 (123)
7.4.1 抽象類和抽象方法 (124)
7.4.2 動(dòng)態(tài)定義類 (124)
7.4.3 運(yùn)算符重載 (125)
7.5 小結(jié) (126)
7.6 習(xí)題 (127)
項(xiàng)目8 模塊和程序打包 (128)
8.1 任務(wù)1 熟悉模塊的概念和用法 (128)
8.1.1 定義模塊 (128)
8.1.2 導(dǎo)入模塊 (129)
8.1.3 導(dǎo)入和加載 (129)
8.1.4 模塊文件和關(guān)鍵變量 (129)
8.1.5 模塊的別名 (130)
8.1.6 反射 (131)
8.2 任務(wù)2 熟悉包的概念和用法 (132)
8.2.1 如何使用包 (132)
8.2.2 搜索路徑與環(huán)境變量 (133)
8.2.3 名稱空間 (133)
8.3 任務(wù)3 熟悉標(biāo)準(zhǔn)庫的查詢和幫助 (134)
8.4 任務(wù)4 了解標(biāo)準(zhǔn)庫常用的包和模塊 (135)
8.4.1 Python增強(qiáng) (135)
8.4.2 系統(tǒng)互動(dòng) (135)
8.4.3 網(wǎng)絡(luò) (136)
8.5 任務(wù)5 模塊化程序設(shè)計(jì):用戶賬戶登錄(總體設(shè)計(jì)) (137)
8.5.1 設(shè)計(jì)目標(biāo) (137)
8.5.2 程序結(jié)構(gòu) (137)
8.6 任務(wù)6 模塊:驗(yàn)證碼生成和校驗(yàn)(實(shí)現(xiàn)) (138)
8.6.1 什么是驗(yàn)證碼 (138)
8.6.2 隨機(jī)數(shù):random模塊 (139)
8.6.3 驗(yàn)證碼功能的實(shí)現(xiàn) (139)
8.7 任務(wù)7 模塊:創(chuàng)建新賬戶(實(shí)現(xiàn)) (140)
8.7.1 創(chuàng)建新賬戶的關(guān)鍵步驟 (140)
8.7.2 輸入字符時(shí)遮蓋內(nèi)容 (140)
8.7.3 信息加密:hashlib模塊 (141)
8.7.4 創(chuàng)建新賬戶的實(shí)現(xiàn) (142)
8.8 任務(wù)8 模塊:賬戶鎖定和密碼核對(實(shí)現(xiàn)) (143)
8.8.1 為什么要鎖定賬戶 (143)
8.8.2 鎖定賬戶的實(shí)現(xiàn) (144)
8.8.3 密碼核對模塊的實(shí)現(xiàn) (145)
8.9 任務(wù)9 模塊:用戶登錄系統(tǒng)主程序(實(shí)現(xiàn)) (146)
8.9.1 用戶登錄過程中的關(guān)鍵步驟 (146)
8.9.2 主程序的實(shí)現(xiàn) (146)
8.10 任務(wù)10 程序打包和部署 (148)
8.10.1 使用dinstutils打包 (148)
8.10.2 使用Pyinstaller創(chuàng)建可執(zhí)行文件 (149)
8.11 小結(jié) (150)
8.12 習(xí)題 (151)
項(xiàng)目9 異常處理 (152)
9.1 任務(wù)1 了解什么是異常 (152)
9.1.1 異常和錯(cuò)誤 (152)
9.1.2 為什么要使用異常處理機(jī)制 (153)
9.2 任務(wù)2 掌握異常的檢測和處理 (153)
9.2.1 常見的異常類型 (153)
9.2.2 處理異常 (154)
9.2.3 else子句 (155)
9.2.4 處理多個(gè)異常 (156)
9.2.5 在單except語句里處理多個(gè)異常 (157)
9.2.6 獲取異常發(fā)生的原因 (157)
9.2.7 捕獲所有異常 (158)
9.2.8 finally子句 (159)
9.2.9 單獨(dú)的try-finally語句 (159)
9.3 任務(wù)3 掌握處理異常的其他方法 (160)
9.3.1 主動(dòng)觸發(fā)異常:raise語句 (160)
9.3.2 封裝內(nèi)建函數(shù) (160)
9.3.3 自定義異常處理方法 (161)
9.3.4 上下文管理:with語句 (163)
9.3.5 斷言:assert語句 (163)
9.3.6 回溯最近發(fā)生的異常 (164)
9.4 小結(jié) (164)
9.5 習(xí)題 (165)
項(xiàng)目10 圖形用戶界面編程 (166)
10.1 任務(wù)1 了解Python GUI編程的基本概念 (166)
10.1.1 常用的Python GUI工具介紹 (166)
10.1.2 wxPython的安裝 (167)
10.1.3 關(guān)于幫助 (167)
10.1.4 GUI程序設(shè)計(jì)的一般流程 (168)
10.2 任務(wù)2 掌握GUI框架的設(shè)計(jì) (169)
10.2.1 使用wx.Frame創(chuàng)建框架 (169)
10.2.2 理解應(yīng)用程序?qū)ο蟮纳芷?(170)
10.2.3 如何管理wxPython對象的ID (170)
10.2.4 wx.Point和wx.Size (171)
10.2.5 創(chuàng)建窗口面板 (171)
10.2.6 Frame的樣式設(shè)置 (172)
10.3 任務(wù)3 掌握基本組件的使用 (173)
10.3.1 靜態(tài)文本框 (173)
10.3.2 文本樣式設(shè)置 (174)
10.3.3 圖片顯示 (175)
10.3.4 文本框 (176)
10.3.5 按鈕和事件驅(qū)動(dòng) (177)
10.3.6 對話框 (179)
10.3.7 菜單欄、工具欄和狀態(tài)欄 (183)
10.3.8 子任務(wù):編寫一個(gè)文本編輯器 (185)
10.4 任務(wù)4 了解組件的高級(jí)應(yīng)用 (190)
10.4.1 單選按鈕 (190)
10.4.2 復(fù)選框 (191)
10.4.3 列表框、下拉框和組合框 (192)
10.4.4 樹形控件 (194)
10.4.5 窗口滾動(dòng)條 (195)
10.4.6 滑塊 (196)
10.4.7 微調(diào)控制器 (197)
10.4.8 進(jìn)度條 (198)
10.4.9 布局管理器 (199)
10.5 小結(jié) (201)
10.6 習(xí)題 (201)
項(xiàng)目11 與數(shù)據(jù)庫交互 (202)
11.1 任務(wù)1 了解數(shù)據(jù)庫的概念 (202)
11.1.1 關(guān)系型數(shù)據(jù)庫 (202)
11.1.2 結(jié)構(gòu)化查詢語言 (203)
11.1.3 PythonDB-API (204)
11.1.4 數(shù)據(jù)庫的選擇 (205)
11.2 任務(wù)2 熟悉在Python中操作SQLite (205)
11.2.1 SQLite簡介 (205)
11.2.2 SQLite的安裝和配置 (206)
11.2.3 sqlite3模塊的使用 (206)
11.2.4 SQLite基礎(chǔ)應(yīng)用:用戶賬戶信息 (207)
11.3 任務(wù)3 熟悉在Python中操作MySQL (209)
11.3.1 MySQL簡介 (209)
11.3.2 獲取和安裝MySQL (210)
11.3.3 MySQL編碼設(shè)置 (211)
11.3.4 常見問題 (212)
11.3.5 Python中的MySQL驅(qū)動(dòng) (213)
11.3.6 mysqlclient的基本使用 (214)
11.3.7 使用exceutemany()方法批量插入數(shù)據(jù) (215)
11.3.8 導(dǎo)入海量數(shù)據(jù) (216)
11.3.9 mysql-connector-python的使用 (217)
11.4 小結(jié) (218)
11.5 習(xí)題 (219)
項(xiàng)目12 網(wǎng)絡(luò)編程 (220)
12.1 任務(wù)1 了解網(wǎng)絡(luò)編程基本知識(shí) (220)
12.1.1 計(jì)算機(jī)網(wǎng)絡(luò)層次結(jié)構(gòu) (220)
12.1.2 C/S模型 (221)
12.1.2 套接字 (222)
12.1.3 面向連接通信與無連接通信 (222)
12.2 任務(wù)2 掌握基于套接字的網(wǎng)絡(luò)編程 (223)
12.2.1 socket模塊及其對象 (223)
12.2.2 創(chuàng)建TCP服務(wù)器 (224)
12.2.3 創(chuàng)建TCP客戶端 (225)
12.2.4 創(chuàng)建UDP服務(wù)器/客戶端 (226)
12.3 任務(wù)3 掌握服務(wù)器多并發(fā)功能的實(shí)現(xiàn) (227)
12.3.1 SocketServer模塊 (227)
12.3.2 創(chuàng)建支持多并發(fā)的服務(wù)器端 (228)
12.3.3 通過SocketServer傳輸文件 (230)
12.4 小結(jié) (232)
12.5 習(xí)題 (232)
項(xiàng)目13 多線程和多進(jìn)程 (233)
13.1 任務(wù)1 了解進(jìn)程和線程的概念 (233)
13.1.1 多道程序設(shè)計(jì)和對稱多處理 (233)
13.1.2 進(jìn)程 (234)
13.1.3 線程 (235)
13.2 任務(wù)2 掌握Python中的多線程編程 (236)
13.2.1 thread模塊與多線程示例 (236)
13.2.2 thread中的線程鎖 (237)
13.2.3 threading模塊 (239)
13.2.4 Thread類 (239)
13.2.5 守護(hù)線程 (240)
13.2.6 搶占和釋放CPU (240)
13.3 任務(wù)3 了解多線程有關(guān)的高級(jí)話題 (241)
13.3.1 線程與隊(duì)列 (241)
13.3.2 生產(chǎn)者-消費(fèi)者問題 (242)
13.3.3 線程鎖、臨界資源和互斥 (243)
13.3.4 死鎖 (245)
13.3.5 信號(hào)量 (246)
13.3.6 全局解釋器鎖 (247)
13.4 任務(wù)4 掌握Python中的多進(jìn)程編程 (248)
13.4.1 multiprocessing模塊 (248)
13.4.2 Process類 (249)
13.4.3 跨進(jìn)程全局隊(duì)列 (250)
13.4.4 Value類和Array類 (251)
13.4.5 Manager類 (252)
13.4.6 進(jìn)程池 (253)
13.4.7 異步和同步 (253)
13.4.8 再論多進(jìn)程和多線程 (255)
13.5 小結(jié) (255)
13.6 習(xí)題 (256)
項(xiàng)目14 Web開發(fā) (257)
14.1 任務(wù)1 了解Web基本知識(shí) (257)
14.1.1 B/S架構(gòu) (257)
14.1.2 網(wǎng)頁與HTML (258)
14.1.3 URL (259)
14.2 任務(wù)2 認(rèn)識(shí)Python中的Web開發(fā)工具 (260)
14.2.1 用于Web開發(fā)的著名框架 (260)
14.2.2 Django簡介 (260)
14.2.3 MVC和MTV開發(fā)模式 (261)
14.2.4 Django的安裝 (262)
14.3 任務(wù)3 使用Django開發(fā)一個(gè)Blog (262)
14.3.1 創(chuàng)建項(xiàng)目 (262)
14.3.2 內(nèi)置的Web開發(fā)服務(wù)器 (263)
14.3.3 允許遠(yuǎn)程訪問Web服務(wù)器 (264)
14.3.4 創(chuàng)建Blog應(yīng)用 (265)
14.3.5 設(shè)計(jì)Model (265)
14.3.6 設(shè)置數(shù)據(jù)庫 (266)
14.3.7 設(shè)置admin應(yīng)用 (267)
14.3.8 建立頁面 (271)
14.3.9 其他工作 (273)
14.4 小結(jié) (274)
14.5 習(xí)題 (275)