Python程序設計基礎及實踐(慕課版)
郭煒
相關主題
商品描述
本書是一部零基礎、高標準,大廣度、重實踐的Python編程從入門到熟練的教材。本書覆蓋面非常廣,包括電腦基礎常識、Python語言的基本要素、基本運算和條件分支語句、循環語句、函數、遞歸、復雜數據類型、計算思維、文件讀寫、正則表達式、玩轉Python生態、數據分析和可視化、網絡爬蟲、面向對象程序設計入門、tkinter圖形界面程序設計等內容。正則表達式、網絡爬蟲、圖形界面等都是其他大多數Python基礎教材不涉及的內容。對Python第三方庫的使用,講述較為全面,涵蓋數據分析庫NumPy和pandas、數據庫編程庫SQLite3、圖像處理庫Pillow、Excel文檔處理庫OpenPyXL、統計繪圖庫Matplotlib、分詞庫Jieba等。還專門用一章的篇幅講述計算思維,讓讀者瞭解計算的本質、時間復雜度、數據結構等概念。這些內容,都不是蜻蜓點水,而是深入淺出。
本書適合高等院校各專業學習Python使用。文、理、藝術等各類專業的零基礎學生可以用到本書80%的內容;對編程有較高需求的理科生,可以進一步再多學15%;餘下5%則基本是電腦專業學生才需要瞭解的。但即便是電腦專業的學生,也非常適合使用本書來快速掌握Python語法及各種庫的使用。
本書配套電子資料十分齊全,包括程序源代碼、重點難點講解視頻、課程講義等,此外,作者在中國大學慕課開設的“實用Python程序設計”課程,提供了覆蓋全書90%內容的視頻講解。
作者簡介
郭煒 北京大學信息學院教師,擔任北京大學ACM國際大學生程序設計競賽隊教練多年,曾6次為ACM-ICPC亞洲區預選賽命題。研究方向:計算機輔助教學,北京角斗士軟件技術有限公司創始人,開發多款英語學習軟件。
目錄大綱
第 1章 電腦基礎常識
1.1 信息在電腦中的表示和存儲 1
1.1.1 用0和1表示信息 1
1.1.2 二進制和十六進制 2
1.2 電腦程序設計語言 4
1.2.1 機器語言 4
1.2.2 匯編語言 5
1.2.3 高級語言 5
1.2.4 Python簡史 6
1.3 習題 7
第 2章 Python語言的基本要素
2.1 Python開發環境的搭建 8
2.2 Python的語句 9
2.3 註釋 10
2.4 常量 11
2.5 變量 12
2.6 賦值語句 12
2.7 Python數據類型 14
2.8 字符串簡介 14
2.8.1 字符串的基本概念 14
2.8.2 字符串的下標 15
2.8.3 連接字符串 15
2.8.4 用“in”“not in”判斷子串 16
2.8.5 字符串和數值的轉換 16
2.9 輸入和輸出 17
2.9.1 輸出語句print 17
2.9.2 輸入語句input 17
2.9.3 輸出格式控制 19
2.10 列表簡介 20
2.10.1 列表的基本概念 20
2.10.2 字符串分割成列表 20
2.11 常見語法錯誤排查 21
2.12 OpenJudge做題指南及例題講解 21
2.13 習題 25
第3章 基本運算和條件分支語句
3.1 算術運算 26
3.2 關系運算和bool類型 28
3.3 邏輯運算 30
3.4 運算符的優先級 31
3.5 條件分支語句 32
3.6 條件分支語句例題 33
3.7 習題 40
第4章 循環語句
4.1 for循環語句 41
4.2 break語句和continue語句 45
4.3 多重循環 45
4.4 while循環語句 48
4.5 異常處理 51
4.6 循環綜合例題 53
4.7 調試程序的方法 57
4.8 習題 58
第5章 函數
5.1 函數概述 59
5.2 全局變量和局部變量 62
★5.3 參數個數可變的函數 63
5.4 函數參數的默認值 64
5.5 Python的庫函數 64
5.6 lambda表達式 65
★★5.7 高階函數和閉包 66
★★★5.8 生成器 67
5.9 習題 69
第6章 遞歸
6.1 遞歸的基本概念 70
6.2 先做一步再遞歸:上臺階問題 72
★6.3 問題分解:漢諾塔問題 72
★★6.4 遞歸替代循環:N皇後問題 76
★6.5 遞歸繪制分形圖案:繪制雪花曲線 78
6.6 習題 81
第7章 復雜數據類型
7.1 Python變量的指針本質 82
7.2 字符串詳解 85
7.2.1 轉義字符 85
7.2.2 三單引號和三雙引號字符串 86
7.2.3 在字符串中使用編碼代替字符 87
7.2.4 字符串的切片 88
7.2.5 字符串的分割 88
7.2.6 字符串的成員函數 89
7.2.7 字符串的格式化 91
7.2.8 f-string 92
7.3 元組 92
7.3.1 元組的基本概念 92
7.3.2 元組的操作 94
7.4 列表詳解 95
7.4.1 列表基礎用法 95
7.4.2 列表的成員函數 98
7.4.3 列表的排序 99
7.4.4 列表的映射和過濾 103
7.4.5 列表生成式 104
★7.4.6 二維列表 105
★7.4.7 列表的復制 107
7.4.8 列表、元組和字符串的互相轉換 109
7.5 字典 109
7.5.1 字典的基本概念 109
7.5.2 字典的函數 111
7.5.3 字典例題:單詞出現頻率統計 112
7.6 集合 113
7.7 自定義數據類型:類 116
7.8 習題 118
第8章 計算思維
8.1 電腦的本質 121
8.2 電腦解決問題的基本方法—窮舉 122
★8.3 程序或算法的時間復雜度 123
8.4 有序就能找得快 127
8.5 習題 128
第9章 文件讀寫
9.1 概述 129
9.2 文本文件的編碼 130
9.3 讀寫文本文件 132
9.4 文件的相對路徑和絕對路徑 134
★9.5 文件夾的操作 135
★9.6 命令行參數 137
★9.7 文本文件處理綜合實例 138
9.8 數據交換文件格式csv 141
★9.9 數據交換字符串格式JSON 142
★★★9.10 字節流和字符串的互相轉換 143
★★★9.11 二進製文件的讀寫 144
9.12 習題 148
第 10章 正則表達式
10.1 功能字符和字符組合 149
10.2 查找匹配的子串 153
10.3 邊界符號 155
10.4 匹配選項 156
10.5 分組 157
10.6 '|' 的用法 160
★★10.7 替換匹配的子串 161
10.8 貪婪匹配和懶惰匹配 162
★★★10.9 條件匹配 163
★★★10.10 斷言 164
10.11 字符串分割 167
10.12 應用實例 167
10.13 習題 168
第 11章 玩轉Python生態
11.1 Python庫的安裝、導入和使用 170
11.2 日期和時間庫datetime 172
11.3 隨機庫random 173
★11.4 用OpenPyXL庫處理Excel文檔 174
★★★11.5 SQLite3數據庫編程 179
11.5.1 數據庫的結構 179
11.5.2 SQL數據庫查詢語句 179
11.6 jieba分詞庫 184
★★11.7 圖像處理庫PIL 186
11.7.1 圖像的基本變換 187
11.7.2 圖像的裁剪 188
11.7.3 圖像的素描化 189
★★★11.7.4 給圖像添加水印 190
★★★11.7.5 照片的exif信息及在圖像上繪圖和寫字 192
11.8 多模塊程序設計 194
11.9 Python程序的打包分發 197
11.10 習題 197
第 12章 數據分析和可視化
12.1 多維數組庫NumPy 199
12.2 數據分析庫pandas 203
12.3 用Matplotlib繪制統計圖 210
12.3.1 繪制柱狀圖 210
12.3.2 繪制折線圖和散點圖 214
12.3.3 繪制餅圖 215
12.3.4 繪制熱力圖 215
12.3.5 繪制雷達圖 216
12.3.6 繪制面積圖 218
★★12.3.7 多子圖繪圖 219
12.4 習題 220
第 13章 網絡爬蟲
13.1 基礎爬蟲四步走 221
13.2 網頁獲取三招式 225
13.3 用BeautifulSoup分析網頁 228
13.4 用pyppeteer爬取JavaScript動態生成的網頁 232
★★13.5 用pyppeteer爬取需要登錄的網站 233
★★★13.6 用pyppeteer+requests編寫快速爬蟲 239
13.7 如何對付反爬蟲措施 241
13.8 習題 241
第 14章 面向對象程序設計入門
14.1 結構化程序設計和麵向對象程序設計 242
14.2 Python中的類 243
14.3 對象的比較 245
14.4 輸出對象 246
14.5 繼承和派生 247
14.6 靜態屬性和靜態方法 249
14.7 對像作為集合元素或字典的鍵 250
第 15章 tkinter圖形界面程序設計
15.1 控件概述 253
15.2 圖形界面的佈局 255
15.3 為控件綁定狀態變量和事件響應函數 258
15.4 綜合示例—Python火鍋店點菜系統 262
15.5 對話框 266
15.6 菜單和多行編輯框示例 270
★★15.7 在圖形界面中用Matplotlib繪制統計圖和顯示圖像 272
★★15.8 Notebook、PanedWindow和TreeView控件 275
15.9 習題 276