本書圖文并茂、示例豐富,以“任務驅動”的方式在實際應用中講解Python的要點,并全面地介紹了Python程序設計的核心技術。全書共9章,內容分別是:初識Python、程序設計入門、流程控制、字符串、組合數(shù)據(jù)類型、函數(shù)、文件操作、正則表達式及網(wǎng)絡爬蟲入門。
(1)本書采用以任務為導向的編寫模式,按照解決實際任務的工作流程,逐步展開,介紹相關的理論知識點,生成可行的解決方案,最后將任務落實在實現(xiàn)環(huán)節(jié)。全書大部分章節(jié)緊扣任務需求展開,不堆積知識點,著重于思路的啟發(fā)與解決方案的實施。
(2)配套網(wǎng)站中的C、C++、Java、Python程序自動評測系統(tǒng)提供了大量適合初學者的程序編程練習。題目按照各個單元分類,約100題,稱為“百題大戰(zhàn)”。由于Python具備優(yōu)雅的語法和強大的內置數(shù)據(jù)結構(列表和字典),因此絕大部分題目僅需要3~5行Python代碼即可完成。
(3)利用互聯(lián)網(wǎng)資源來優(yōu)化學習體驗,本書介紹在云端米筐Notebook中運行Python程序的方法,大大方便了Python程序的開發(fā)。本書還介紹正則表達式交互式學習網(wǎng)站,讀者在網(wǎng)站可以通過闖關練習來熟練掌握正則表達式。
沈涵飛,蘇州工業(yè)園區(qū)服務外包職業(yè)學院講師、高級系統(tǒng)架構師,主講課程為C語言程序設計、Python程序設計、數(shù)據(jù)結構、人工智能導論等。
第 1章
初識Python 1
1.1 學好Python的關鍵 1
1.2 計算機的發(fā)展和程序設計語言 2
1.2.1 計算機的發(fā)展 2
1.2.2 機器語言、匯編語言和高級語言 3
1.2.3 編譯和解釋 4
1.2.4 程序設計的開發(fā)效率和執(zhí)行效率 5
1.2.5 常見的程序設計語言及其用途 6
1.3 Python概述 7
1.3.1 Python簡史 7
1.3.2 Python的特點 7
1.3.3 Python的應用領域 8
1.3.4 Python 2和Python 3 9
1.4 Python開發(fā)環(huán)境配置 9
1.4.1 使用云端開發(fā)環(huán)境米筐Notebook 10
1.4.2 安裝一站式開發(fā)環(huán)境Anaconda 11
1.4.3 以兩種方式運行第 一個程序:Hello, World! 12
1.5 米筐Notebook的使用 13
1.5.1 米筐Notebook的基本操作 13
1.5.2 Magic命令 * 14
1.5.3 運行系統(tǒng)命令 * 15
1.5.4 查看軟件運行環(huán)境 * 16
1.5.5 安裝第三方庫 17
1.6 探索Python:超級計算器 17
1.6.1 計算3的300次方 17
1.6.2 計算階乘 18
1.6.3 統(tǒng)計單詞出現(xiàn)的次數(shù) 18
1.7 小結 19
1.8 習題 19
第 2章
程序設計入門 21
2.1 計算生態(tài)和模塊編程 21
2.1.1 計算生態(tài) 21
2.1.2 導入庫和函數(shù) ★ 22
2.2 結構化程序的框架 23
2.3 Python程序語法元素分析 24
2.3.1 縮進 ★ 25
2.3.2 關鍵字 25
2.3.3 標識符 26
2.3.4 變量 26
2.3.5 注釋 27
2.3.6 多行語句 27
2.4 Python的六大核心數(shù)據(jù)類型 28
2.5 可變類型和不可變類型 * 28
2.6 數(shù)字類型和算術運算 29
2.6.1 整數(shù) 30
2.6.2 浮點數(shù) 30
2.6.3 常用算術運算 31
2.7 程序在線評測系統(tǒng)及其基本使用 32
2.7.1 程序在線評測系統(tǒng) 32
2.7.2 程序在線評測系統(tǒng)中的求和問題 32
2.7.3 基本輸入/輸出函數(shù) 33
2.7.4 在線評測系統(tǒng)中輸入/輸出的常見用法歸納 34
2.8 小結 35
2.9 習題 35
第3章
流程控制 38
3.1 分支結構的3種形式 38
3.1.1 基本結構1:單分支結構 38
3.1.2 基本結構2:雙分支結構 39
3.1.3 基本結構3:多分支結構 39
3.2 for循環(huán) 41
3.2.1 遍歷容器 41
3.2.2 range函數(shù) 41
3.2.3 最簡單的循環(huán) 42
3.2.4 計算1~100之和 43
3.2.5 求水仙花數(shù) 44
3.2.6 多重循環(huán):九九乘法表和水仙花數(shù) 45
3.3 羅塞塔石碑語言學習法 46
3.4 while循環(huán)和流程圖 47
3.5 改變循環(huán)執(zhí)行流程: break和continue 48
3.6 程序的異常處理 49
3.6.1 捕獲異常 50
3.6.2 拋出異!51
3.7 小結 52
3.8 習題 52
第4章
字符串 55
4.1 字符串的基礎知識 55
4.1.1 字符串界定符:單引號、雙引號和三重引號 55
4.1.2 使用反斜杠轉義 55
4.1.3 使用 raw字符串抑制轉義 56
4.2 序列的索引和切片 ★ 57
4.2.1 序列的索引 57
4.2.2 序列的切片 57
4.2.3 序列的擴展切片 58
4.3 字符串的基本操作 59
4.3.1 序列操作 59
4.3.2 常用的字符串方法 60
4.3.3 匹配字符串的前綴和后綴 61
4.3.4 切分和合并字符串 ★ 62
4.4 字符串格式化和輸出語句 63
4.5 中文分詞和jieba庫 * 63
4.6 小結 65
4.7 習題 65
第5章
組合數(shù)據(jù)類型 67
5.1 序列、集合和映射 67
5.2 序列的特點和通用操作 67
5.3 列表:批量處理 68
5.3.1 列表的基本用法 68
5.3.2 列表的常用操作 69
5.3.3 列表的遍歷:enumerate和zip 70
5.3.4 列表的兩種排序方法 71
5.3.5 列表的引用和復制 * 72
5.3.6 列表的操作匯總 72
5.4 元組:不可變、組合 73
5.5 字典:按鍵取值 75
5.5.1 字典的創(chuàng)建和查找 75
5.5.2 字典的遍歷和排序 * 77
5.5.3 字典的嵌套、JSON及pprint庫 * 78
5.5.4 字典的操作匯總 80
5.6 集合:去重 80
5.7 列表生成式 ★ 81
5.8 生成器表達式和惰性求值 * 83
5.9 小結 84
5.10 習題 84
第6章
函數(shù) 88
6.1 認識函數(shù) 88
6.1.1 站在巨人的肩膀上:使用函數(shù)實現(xiàn)機器翻譯 88
6.1.2 結構化程序設計方法 90
6.1.3 內置函數(shù) 91
6.1.4 自定義函數(shù) 91
6.2 函數(shù)的參數(shù) 92
6.2.1 可選參數(shù)和默認值 92
6.2.2 位置參數(shù)調用 93
6.2.3 關鍵字參數(shù)調用 93
6.2.4 不定長參數(shù) 93
6.3 函數(shù)式編程和高階函數(shù) 95
6.4 匿名函數(shù):lambda函數(shù) ★ 96
6.5 常用高階函數(shù) 97
6.5.1 函數(shù)map:映射函數(shù)到序列 97
6.5.2 函數(shù)reduce:歸約計算 97
6.5.3 函數(shù)filter:過濾序列 98
6.6 遞歸 * 99
6.6.1 遞歸方法和遞歸函數(shù) 99
6.6.2 遞歸入門:斐波那契數(shù)列和計算嵌套數(shù)字列表中所有數(shù)字之和 99
6.6.3 經(jīng)典問題:漢諾塔問題 100
6.7 變量的作用域 * 101
6.7.1 函數(shù)被調用次數(shù)的確定 101
6.7.2 斐波那契函數(shù)優(yōu)化1:全局字典 102
6.7.3 斐波那契函數(shù)優(yōu)化2:內嵌函數(shù) 102
6.7.4 LEGB原則 103
6.8 小結 103
6.9 習題 103
第7章
文件操作 107
7.1 認識文件 107
7.1.1 文本文件和二進制文件 107
7.1.2 常用的中文編碼格式 107
7.2 文本文件的讀/寫操作 108
7.2.1 讀取文件全文 109
7.2.2 按行讀取文件 110
7.2.3 實現(xiàn)文件的編碼格式轉換 111
7.2.4 使用with-as語句 111
7.3 處理表格數(shù)據(jù)的3種方法 112
7.4 存儲半結構化數(shù)據(jù):JSON數(shù)據(jù)和pickle數(shù)據(jù) 113
7.5 常用文件模塊os和shutil 113
7.5.1 模塊os和shutil簡介 114
7.5.2 文件模塊的主要函數(shù) 114
7.5.3 應用示例 115
7.6 模塊和庫 * 117
7.6.1 模塊的制作 117
7.6.2 庫的發(fā)布 118
7.7 小結 119
7.8 習題 119
第8章
正則表達式 * 121
8.1 正則表達式簡介 121
8.2 Python中常用的正則函數(shù) 121
8.2.1 正則函數(shù)初步使用 122
8.2.2 查找所有匹配 123
8.2.3 查找第 一個匹配 124
8.2.4 替換 126
8.3 RegexOne的闖關游戲 127
8.3.1 闖關:通配符 128
8.3.2 闖關:排除特定字符 128
8.3.3 闖關:重復次數(shù) 129
8.4 編譯模式re.compile和匹配參數(shù) 129
8.5 小結 130
8.6 習題 130
第9章
網(wǎng)絡爬蟲入門 * 132
9.1 網(wǎng)絡爬蟲簡介和基本處理流程 132
9.1.1 什么是網(wǎng)絡爬蟲 132
9.1.2 使用網(wǎng)絡爬蟲的法律風險 132
9.1.3 網(wǎng)絡爬蟲的基本處理流程 133
9.2 實戰(zhàn):使用pandas庫獲取2018年中國企業(yè)500強榜單 134
9.3 使用Requests庫獲取網(wǎng)頁 135
9.4 使用Beautiful Soup 4庫解析網(wǎng)頁 136
9.4.1 獲取節(jié)點的主要方式 137
9.4.2 從節(jié)點中提取信息 138
9.5 實戰(zhàn):獲取唐詩三百首 140
9.6 小結 142
9.7 習題 142
附錄
附錄A 全國計算機等級考試二級Python語言程序設計考試大綱 144
附錄B PyCharm 145
附錄C 常用函數(shù)/方法參考 150
附錄D 米筐Notebook支持的模塊列表 152