1.1
Python的魅力 1
1.1.1
Python很容易記憶 2
1.1.2
Python很容易使用 3
1.1.3
Python有廣闊的前景 4
1.2
Python(Anaconda)的下載和安裝… 6
1.2.1
什麼是Anaconda
6
1.2.2
必要的學習環境7
1.2.3
在 Windows繫統中安裝Anaconda 8
1.2.4
在macOS(OS X)繫統中安裝Anaconda
9
1.2.5
在Linux繫統中安裝
Anaconda 10
1.2.6
已經安裝Python的情況 11
1.2.7
安裝本家版Python
11
1.3
交互式腳本(對話型腳本) 13
1.3.1
在 Windows繫統中啟動交互式腳本 13
1.3.2
在 macOS、Linux繫統中啟動交互式腳本14
1.3.3
輸入Python代碼15
1.3.4
關閉交互式腳本20
1.4
在文件中編寫Python程序 20
1.4.1
使用Editor(編輯器)編寫程序21
1.4.2
保存Python程序 21
1.4.3
在 Windows繫統中運行Python的腳本文件22
1.4.4
在 macOS、Linux繫統中執行Python的腳本文件
23
1.4.5
推薦的編輯器和選擇方法24
1.5
使用Jupyter Notebook 26
1.5.1
在 Windows、macOS繫統中啟動內核 28
1.5.2
在Linux繫統中啟動內核 28
1.5.3
使用主面板29
1.5.4
制作Notebook29
1.5.5
使用Notebook運行程序 30
1.5.6
保存Notebook 32
1.5.7
結束Notebook
33
1.5.8
使用Jupyter Notebook的tmpnb 33
1.5.9
示例代碼的運行方法34
第2章 用Python開始程序設計36
2.1
使用數值36
2.1.1
使用數值的四則運算37
2.1.2
四則運算和優先順序38
2.2
使用變量38
2.2.1
定義變量38
2.2.2
使用變量進行計算39
2.3
使用字符串41
2.3.1
定義字符串41
2.3.2
字符串的連接42
2.3.3
復合運算符43
2.3.4
統一類型的Python風格 44
2.3.5
字符串與數值的轉換(類型轉換) 45
2.4
使用列表47
2.4.1
定義列表47
2.4.2
指定索素48
2.4.3
列表的連接50
2.4.4<素的置換和刪除50
2.4.5
使用切片取素52
2.4.6
列表的列表———二維數組53
2.4.7
列表的合計、值和小值55
2.4.8
查看列表長度56
2.5
用for語句進行循環操作 57
2.6
用if語句進行條件分支 61
2.6.1
比較數值63
2.6.2
比較字符串63
2.6.3
檢索字符串64
2.6.4
比較列表64
2.6.5
檢素65
2.6.6
使用else語句 65
2.7
使用函數69
2.7.1
什麼是函數69
2.7.2
調用函數70
2.7.3
函數的參數70
2.7.4
函數的返回值(1) 71
2.7.5
定義函數72
2.7.6
定義參數74
2.7.7
函數的返回值(2) 75
2.7.8
本地變量76
2.8
使用模塊79
2.8.1
導入模塊80
2.8.2
import語句的as 81
2.8.3
使用了from的導入 81
2.8.4
模塊的查找方法82
第3章 掌握Python的基礎83
3.1
使用字典83
3.1.1
什麼是字典83
3.1.2
使用素84
3.1.3
使用素85
3.1.4
添加新的鍵與值86
3.1.5
使用素87
3.1.6
確認鍵的存在88
3.1.7
使用鍵的循環89
3.2
使用set(集合) 90
3.2.1
定義set 91
3.2.2
求set的並集 91
3.2.3
求set的差集 92
3.2.4
求set的交集 92
3.2.5
求set的異或 93
3.2.6
set與列表 94
3.2.7
set與比較 94
3.3
3.4
if語句的應用99
3.4.1
比較運算符99
3.4.2
比較運算符與True和False 99
3.4.3
關於比較的備忘錄
100
3.4.4
復雜的比較———邏輯運算
100
3.5
循環的應用
101
3.5.1
使用while語句制作循環 101
3.5.2
使用了break語句和continue語句的循環控制 103
3.5.3
循環的else
105
3.6
函數的應用
105
3.6.1
對函數定義默認參數
106
3.6.2
參數的關鍵字指定
107
3.6.3
函數和本地變量
108
第4章 熟練使用內置類型111
4.1
作為對像的內置類型概述
111
4.1.1
什麼是方法 111
4.1.2
作為對像的內置類型
113
4.1.3
內置的數據類型一覽
114
4.1.4
數據類型的分類
116
4.1.5
序 列 116
4.1.6
可更改和不可更改
117
4.1.7
set類型和字典類型117
4.2
操作數值類型
118
4.2.1
十六進制的表示方法
118
4.2.2
二進制的表示方法119
4.2.3
八進制的表示方法
120
4.2.4
位運算 121
4.3
熟練使用字符串類型
121
4.3.1
字符串的替換和刪除 121
4.3.2
split()方法和join()方法 122
4.3.3
轉義序列 124
4.3.4
raw字符串 126
4.3.5
字符串中可以使用的方法
126
4.3.6
字符串的格式化
128
4.4
熟練掌握列表組類型
132
4.4.1
給列表排序
132
4.4.2
自定義排列順序
133
4.4.3
解包代入 134
4.4.4
切片的步長數
135
4.4.5
使用素的代入和刪除135
4.4.6
列表中可以使用的方法 136
4.5
熟練使用set類型 137
4.6
熟練掌握字典類型
138
4.6.1
通過序列等制作字典
138
4.6.2
將兩個字典進行組合
139
4.6.3
巧妙處理字典的鍵
139
4.6.4
靈活運用字典中的方法 140
4.7
if語句和內置類型142
4.8
for語句和內置類型142
4.8.1
熟練使用range()函數 142
4.8.2
序列和循環計數器143
4.8.3
使用兩個序列的循環
144
4.9
函數和內置類型
145
4.9.1
返回值和解包代入
145
4.9.2
在函數中接收參數列表
146
4.9.3
在函數中接收關鍵字參數
147
4.10
Python的字符串和日語
147
4.10.1
有關字符編碼的基礎知識147
4.10.2
Python和 Unicode
150
4.10.3
字節類型150
4.10.4
字符串向字節類型轉換152
4.10.5
字節類型向字符串類型轉換153
4.10.6
腳本文件的編碼指定153
4.10.7
編碼的判斷154
4.10.8
編碼和亂碼154
4.10.9
多字節字符和字符的分界156
4.11
Python的文件處理
156
4.11.1
文件和文件對像158
4.11.2
從文件中讀取160
4.11.3
寫入文件162
4.11.4
處理二進制文件162
4.11.5
文件名稱的處理163
第5章 Python與函數式程序設計 165
5.1
什麼是函數式程序設計
165
5.1.1
Python的語句和表達式 167
5.1.2
Lambda表達式 167
5.2
解析式 168
5.2.1
列表解析式 169
5.2.2
列表解析式的詳細介紹 169
5.2.3
在列表解析式中使用if
170
5.2.4
字典解析式
171
5.2.5
set解析式172
5.3
使用迭代 172
5.3.1
什麼是迭代
172
5.3.2
迭代和延遲評價
173
5.4
使用生成器
175
5.4.1
定義生成器函數
176
5.4.2
生成器表達式
176
5.5
高階函數和裝飾器177
5.5.1
高階函數 177
5.5.2
裝飾器 179
第6章 類與面向對像開發181
6.1
在Python中使用類181
6.1.1
對像和類 181
6.1.2
由類制作對像(實例) 182
6.1.3
使用實例 183
6.1.4
對像和實例183
6.2
制作類184
6.2.1
定義類 185
6.2.2
實例的屬性
185
6.2.3
方法的定義與初始化方法“__init__()”
187
6.2.4
方法與參數“self” 188
6.2.5
屬性的隱蔽性
192
第7章 類的繼承與高級面向對像功能194
7.1
繼承類 194
7.1.1
指定超類 195
7.1.2
方法的重寫
195
7.1.3
初始化方法的重寫
196
7.1.4
得到使用super()的超類 197
7.1.5
插 槽 198
7.1.6
特 征 199
7.2
使用特殊方法
200
7.3
繼承內置類型
206
第8章 模 塊209
8.1
創建模塊文件夾
209
8.1.1
導入模塊時的操作
210
8.1.2
僅在執行文件時執行的塊
211
8.1.3
類與模塊 212
8.2
模塊的層次(包) 213
8.2.1
包的本質 213
8.2.2
創建包 214
8.3
使用模塊時的注意事項
214
8.3.1
使用from語句導入的弊端 214
8.3.2
模塊的搜索順序
214
8.4
使用第三方模塊
215
8.4.1
模塊的搜尋方法 215
8.4.2
使用pip安裝模塊 216
8.4.3
使用conda安裝模塊 217
8.4.4
模塊的種類 217
8.4.5
手動安裝模塊
218
8.4.6
模塊的設置場所和Python的版本 218
第9章 作用域與對像221
9.1
命名空間、作用域221
9.1.1
作用域的規則
222
9.1.2
類、實例的作用域224
9.2
純粹面向對像語言Python
225
9.2.1
對像與屬性
225
9.2.2
魔法函數dir()226
9.2.3
作為屬性的方法
227
9.2.4
全部都是對像
228
9.2.5
對像與類型228
9.2.6
對像與屬性
230
9.2.7
類、模塊與屬性231
9.2.8
對像和變量
231
9.2.9
對像與命名空間
232
第10章 異常處理
234
10.1
Python的異常處理
234
10.1.1
異常的發生234
10.1.2
捕獲異常235
10.1.3
with語句 237
10.1.4
異常與追溯237
10.1.5
引發(raise)異常238
10.1.6
顯示追溯238
10.2
常見錯誤或異常與對策239
10.2.1
讀取程序時發生的錯誤(SyntaxError) 240
10.2.2
程序執行中發生的錯誤(Exception) 240
第11章 使用標準庫
243
11.1
標準庫的導入243
11.2
數據結構244
11.2.1
保持添加時順序的“collections.OrderedDict” 244
11.2.2
帶有默認值的字典“collections.defaultdict” 245
11.2.3
協助列表sort的“bisect” 246
11.3
處理日期數據的“datetime、calendar” 247
11.3.1
日期與時刻和字符串249
11.3.2
日期與時刻的運算和比較250
11.3.3
使用datetime.date類的方法 251
11.3.4
使用datetime.datetime類的方法 252
11.3.5
使用calendar模塊 252
11.4
正則表達式“re” 254
11.4.1
re模塊 254
11.4.2
Python的正則表達式
255
11.4.3
正則表達式的pattern字符串 255
11.4.4
使用正則表達式對像257
11.4.5
將模式傳遞給參數,進行正則表達式的處理 259
11.4.6
使用匹配對像260
11.4.7
正則表達式的示例261
11.5
獲取操作繫統參數的“sys” 261
11.5.1
獲取命令行的參數261
11.5.2
程序的結束262
11.5.3
其他函數與變量262
11.6
獲得及操作文件、進程等依賴 OS信息的“OS” 262
11.6.1
獲取、操作與進程相關的信息
262
11.6.2
文件與目錄的操作263
11.6.3
進程管理265
11.6.4
在交換平臺使用了路徑的操作266
11.7
使用數學函數“math”“random” 267
11.7.1
math———數學函數模塊
267
11.7.2
random———生成隨機數
269
11.8
獲取因特網上數據的“urllib” 270
11.8.1
從 Web或FTP中獲取文件271
11.8.2
使用request.urlretrieve()函數的示例代碼 271
11.8.3
從 Web或FTP中讀取數據272
11.8.4
在urlopen()返回的對像中可以使用的方法 272
11.8.5
BASIC認證 273
11.8.6
用POST方式傳輸數據 274
11.8.7
其他函數275
11.9
創建字符串庫虛擬文件的“io.StringIO” 276
11.10
CSV(逗號分隔值)文件的操作 277
11.11
對像持久化與序列化“shelve”“pickle” 278
11.11.1
將字典持久化的“shelve” 279
11.11.2
執行對像持久化與序列化的“pickle” 280
11.12
處理JSON數據的“json” 282
11.12.1
將JSON轉換為Python的數據類型283
11.12.2
Python的數據類型轉換為JSON
283
11.12.3
json的使用示例
284
第12章 Python與數據科學 285
12.1
NumPy與 matplotlib
285
12.1.1
所謂的 NumPy與
matplotlib 285
12.1.2
使用NumPy 287
12.1.3
使用 matplotlib 290
12.2
使用NumPy
291
12.2.1
生成NumPy的array 291
12.2.2
使用數組的運算293
12.2.3
12.2.4
數組的連接295
12.2.5
復制數組296
12.3
使用 matplotlib 296
12.3.1
使用plot()來繪制圖表297
12.3.2
控制plot()的繪制299
12.3.3
加入字符300
12.4
將日本的人口可視化300
12.4.1
讀取人口數據301
12.4.2
繪制人口金字塔303
12.4.3
將圖表繪制在交互式中304
12.4.4
推算未來人口數量306
12.5
Python與機器學習
310
12.5.1
用機器學習進行數值的預測311
12.5.2
機器學習的算法315
12.5.3
由姓名來判定性別316
12.5.4
機器學習、數據科學與Python 320
12.5.5
深度學習的登場和未來321
第13章 Python 2 323
13.1
Python 3與Python 2的不同點323
13.1.1
在Python 3中被削減掉的功能 324
13.1.2
在Python 2.7中可以使用的Python
3功能 324
13.1.3
在Python 3中改變了的功能 325
13.1.4
模塊的再配置、名稱變更
329
13.2
從Python 2到Python 3的遷移 330
13.3
結束語331