基本信息
原書名:Beginning Python: From Novice to Professional, Second Edition原出版社: Apress
作者:(挪)Magnus Lie Hetland
譯者:司維曾軍崴譚穎華
叢書名: 圖靈程式設計叢書
出版社:人民郵電出版社
ISBN:9787115230270
出版日期:2010 年7月
開本:16開
頁碼:471
版次:2-1
內容簡介
本書包括python程式設計的方方面面,首先從python的安裝開始,隨後介紹了python的基礎知識和基本概念,包括列表、元組、字元串、字典以及各種語句。然後循序漸進地介紹了一些相對高級的主題,包括抽象、異常、魔法方法、屬性、疊代器。此後探討了如何將python與資料庫、網路、c語言等工具結合使用,從而發揮出python的強大功能,同時介紹了python程式測試、打包、發布等知識。最後,作者結合前面講述的內容,按照實際項目開發的步驟向讀者介紹了幾個具有實際意義的python項目的開發過程。
本書內容涉及的範圍較廣,既能為初學者夯實基礎,又能幫助程式設計師提升技能,適合各個層次的python開發人員閱讀參考。
作者
Magnus Lie Hetland 挪威科技大學副教授,教授算法。喜歡鑽研新的程式語言,是Python語言的堅定支持者。他寫過很多Python方面的書和線上教程,比如深受大家歡迎的網上教程Instant Python。
目錄
第1章 基礎知識1
1,1 安裝python 1
1,1,1 windows 1
1,1,2 linux和unix 3
1,1,3 蘋果機(macintosh)4
1,1,4 其他發布版5
1,1,5 時常關注,保持更新6
1,2 互動式解釋器6
1,3 算法是什麼7
1,4 數字和表達式8
1,4,1 長整型數9
1,4,2 十六進制和八進制10
1,5 變數10
1,6 語句11
1,7 獲取用戶輸入12
1,8 函式13
1,9 模組14
1,9,1 cmath和複數14
1,9,2 回到__future__ 15
1,10 保存並執行程式15
,1,10,1 通過命令提示符運行python腳本16
1,10,2 讓腳本像普通程式一樣運行17
1,10,3 注釋18
1,11 字元串19
1,11,1 單引號字元串和轉義引號19
1,11,2 拼接字元串20
1,11,3 字元串表示,str和repr 20
1,11,4 input和raw_input的比較21
1,11,5 長字元串、原始字元串和unicode 22
1,12 小結24
1,12,1 本章的新函式25
1,12,2 接下來學什麼25
第2章 列表和元組26
2,1 序列概覽26
2,2 通用序列操作27
2,2,1 索引27
2,2,2 分片29
2,2,3 序列相加31
2,2,4 乘法31
2,2,5 成員資格32
2,2,6 長度、最小值和最大值33
2,3 列表:python的“苦力” 34
2,3,1 list函式34
2,3,2 基本的列表操作34
2,3,3 列表方法36
2,4 元組:不可變序列41
2,4,1 tuple函式42
2,4,2 基本元組操作42
2,4,3 那么,意義何在42
2,5 小結43
2,5,1 本章的新函式43
2,5,2 接下來學什麼43
第3章 使用字元串44
3,1 基本字元串操作44
3,2 字元串格式化:精簡版44
3,3 字元串格式化:完整版46
3,3,1 簡單轉換47
3,3,2 欄位寬度和精度47
3,3,3 符號、對齊和0填充47
3,4 字元串方法49
3,4,1 find 49
3,4,2 join 50
3,4,3 lower 51
3,4,4 replace 51
3,4,5 split 52
3,4,6 strip 52
3,4,7 translate 52
3,5 小結 54
3,5,1 本章的新函式54
3,5,2 接下來學什麼54
第4章 字典:當索引不好用時55
4,1 字典的使用55
4,2 創建和使用字典56
4,2,1 dict函式56
4,2,2 基本字典操作57
4,2,3 字典的格式化字元串58
4,2,4 字典方法59
4,3 小結64
4,3,1 本章的新函式64
4,3,2 接下來學什麼64
第5章 條件、循環和其他語句65
5,1 print和import的更多信息65
5,1,1 使用逗號輸出65
5,1,2 把某件事作為另一件事導入66
5,2 賦值魔法67
5,2,1 序列解包67
5,2,2 鏈式賦值68
5,2,3 增量賦值68
5,3 語句塊:縮排的樂趣69
5,4 條件和條件語句69
5,4,1 這就是布爾變數的作用69
5,4,2 條件執行和if 語句70
5,4,3 else子句71
5,4,4 elif子句71
5,4,5 嵌套代碼塊71
5,4,6 更複雜的條件72
5,4,7 斷言76
5,5 循環76
5,5,1 while循環77
5,5,2 for循環77
5,5,3 循環遍歷字典元素78
5,5,4 一些疊代工具79
5,5,5 跳出循環80
5,5,6 循環中的else子句82
5,6 列表推導式——輕量級循環82
5,7 三人行83
5,7,1 什麼都沒發生84
5,7,2 使用del刪除84
5,7,3 使用exec和eval執行和求值字元串85
5,8 小結87
5,8,1 本章的新函式88
5,8,2 接下來學什麼88
第6章 抽象89
6,1 懶惰即美德89
6,2 抽象和結構90
6,3 創建函式90
6,3,1 記錄函式91
6,3,2 並非真正函式的函式92
6,4 參數魔法92
6,4,1 值從哪裡來93
6,4,2 我能改變參數嗎93
6,4,3 關鍵字參數和默認值97
6,4,4 收集參數99
6,4,5 反轉過程101
6,4,6 練習使用參數102
6,5 作用域103
6,6 遞歸105
6,6,1 兩個經典:階乘和冪106
6,6,2 另外一個經典:二元查找107
6,7 小結110
6,7,1 本章的新函式110
6,7,2 接下來學什麼111
第7章 更加抽象112
7,1 對象的魔力112
7,1,1 多態113
7,1,2 封裝115
7,1,3 繼承117
7,2 類和類型117
7,2,1 類到底是什麼117
7,2,2 創建自己的類118
7,2,3 特性、函式和方法119
7,2,4 類的命名空間121
7,2,5 指定超類122
7,2,6 調查繼承122
7,2,7 多個超類123
7,2,8 接口和內省124
7,3 一些關於面向對象設計的思考125
7,4 簡明總結125
7,4,1 本章的新函式126
7,4,2 接下來學什麼126
第8章 異常127
8,1 什麼是異常127
8,2 按自己的方式出錯127
8,2,1 raise語句127
8,2,2 自定義異常類128
8,3 捕捉異常129
8,4 不止一個except子句130
8,5 用一個塊捕捉兩個異常131
8,6 捕捉對象131
8,7 真正的全捕捉131
8,8 萬事大吉132
8,9 最後…… 134
8,10 異常和函式134
8,11 異常之禪135
8,12 小結136
8,12,1 本章的新函式137
8,12,2 接下來學什麼137
第9章 魔法方法、屬性和疊代器138
9,1 準備工作138
9,2 構造方法139
9,2,1 重寫一般方法和特殊的構造方法140
9,2,2 調用未綁定的超類構造方法141
9,2,3 使用super函式142
9,3 成員訪問143
9,3,1 基本的序列和映射規則144
9,3,2 子類化列表,字典和字元串146
9,4 更多魔力147
9,5 屬性147
9,5,1 property函式148
9,5,2 靜態方法和類成員方法149
9,5,3 __getattr__、__setattr__和它的朋友們150
9,6 疊代器151
9,6,1 疊代器規則151
9,6,2 從疊代器得到序列153
9,7 生成器153
9,7,1 創建生成器153
9,7,2 遞歸生成器154
9,7,3 通用生成器156
9,7,4 生成器方法156
9,7,5 模擬生成器157
9,8 八皇后問題158
9,8,1 生成器和回溯158
9,8,2 問題159
9,8,3 狀態表示159
9,8,4 尋找衝突159
9,8,5 基本情況160
9,8,6 需要遞歸的情況161
9,8,7 打包162
9,9 小結163
9,9,1 本章的新函式164
9,9,2 接下來學什麼164
第10章 充電時刻165
10,1 模組165
10,1,1 模組是程式165
10,1,2 模組用於定義167
10,1,3 讓你的模組可用169
10,1,4 包171
10,2 探究模組172
10,2,1 模組中有什麼172
10,2,2 用help獲取幫助173
10,2,3 文檔174
10,2,4 使用原始碼174
10,3 標準庫:一些最愛175
10,3,1 sys 175
10,3,2 os 176
10,3,3 fileinput 178
10,3,4 集合、堆和雙端佇列180
10,3,5 time 184
10,3,6 random 185
10,3,7 shelve 188
10,3,8 re 191
10,3,9 其他有趣的標準模組204
10,4 小結205
10,4,1 本章的新函式205
10,4,2 接下來學什麼206
第11章 檔案和素材207
11,1 打開檔案207
11,1,1 檔案模式207
11,1,2 緩衝208
11,2 基本檔案方法209
11,2,1 讀和寫209
11,2,2 管式輸出210
11,2,3 讀寫行211
11,2,4 關閉檔案211
11,2,5 使用基本檔案方法213
11,3 對檔案內容進行疊代214
11,3,1 按位元組處理214
11,3,2 按行操作215
11,3,3 讀取所有內容215
11,3,4 使用fileinput實現懶惰行疊代216
11,3,5 檔案疊代器216
11,4 小結217
11,4,1 本章的新函式218
11,4,2 接下來學什麼218
第12章 圖形用戶界面219
12,1 豐富的平台219
12,2 下載和安裝wxPython 220
12,3 創建示例gui應用程式221
12,3,1 開始221
12,3,2 視窗和組件222
12,3,3 標籤、標題和位置223
12,3,4 更智慧型的布局225
12,3,5 事件處理226
12,3,6 完成了的程式226
12,4 但是我寧願用…… 228
12,4,1 使用Tkinter 229
12,4,2 使用jython和swing 229
12,4,3 使用其他開發包230
12,5 小結230
第13章 資料庫支持231
13,1 python資料庫api 232
13,1,1 全局變數232
13,1,2 異常233
13,1,3 連線和游標233
13,1,4 類型235
13,2 sqlite和pysqlite 235
13,2,1 入門236
13,2,2 資料庫應用程式示例237
13,3 小結239
13,3,1 本章的新函式240
13,3,2 接下來學什麼240
第14章 網路編程241
14,1 少數幾個網路設計模組241
14,1,1 socket模組242
14,1,2 urllib和urllib2模組243
14,1,3 其他模組245
14,2 socketserver和它的朋友們246
14,3 多連線246
14,3,1 使用socketserver進行分叉和執行緒處理248
14,3,2 帶有select和poll的異步i/o 248
14,4 twisted 251
14,4,1 下載並安裝twisted 251
14,4,2 編寫twisted伺服器251
14,5 小結253
14,5,1 本章的新函式254
14,5,2 接下來學什麼254
第15章python和全球資訊網255
15,1 螢幕抓取255
15,1,1 tidy和xhtml解析256
15,1,2 beautiful soup 260
15,2 使用cgi創建動態網頁261
15,2,1 第一步:準備網路伺服器261
15,2,2 第二步:加入pound bang行261
15,2,3 第三步:設定檔案許可262
15,2,4 cgi安全風險262
15,2,5 簡單的cgi腳本263
15,2,6 使用cgitb調試263
15,2,7 使用cgi模組264
15,2,8 簡單的表單265
15,3 更進一步:Mod_Python 267
15,3,1 安裝mod_python 267
15,3,2 cgi處理程式269
15,3,3 psp 270
15,3,4 發布271
15,4 網路應用程式框架273
15,5 web服務:正確分析274
15,5,1 rss和相關內容274
15,5,2 使用xml-rpc進行遠程過程調用275
15,5,3 soap 275
15,6 小結276
15,6,1 本章的新函式276
15,6,2 接下來學什麼276
第16章 測試277
16,1 先測試,後編碼277
16,1,1 精確的需求說明278
16,1,2 為改變而計畫279
16,1,3 測試的4步279
16,2 測試工具280
16,2,1 doctest 280
16,2,2 unittest 282
16,3 單元測試以外的內容285
16,3,1 使用pychecker和pylint檢查原始碼285
16,3,2 分析288
16,4 小結289
16,4,1 本章的新函式290
16,4,2 接下來學什麼290
第17章 擴展python 291
17,1 考慮哪個更重要291
17,2 非常簡單的途徑:jython和ironpython 292
17,3 編寫c語言擴展294
17,3,1 swig 296
17,3,2 自己研究299
17,4 小結303
17,4,1 本章的新函式304
17,4,2 接下來學什麼304
第18章 程式打包305
18,1 distutils基礎305
18,2 打包307
18,2,1 建立存檔檔案307
18,2,2 創建windows安裝程式或rpm包308
18,3 編譯擴展309
18,4 使用py2exe創建可執行程式310
18,5 小結311
18,5,1 本章的新函式311
18,5,2 接下來學什麼311
第19章 好玩的編程312
19,1 為什麼要好玩312
19,2 程式設計的柔術312
19,3 原型設計313
19,4 配置314
19,4,1 提取常量314
19,4,2 配置檔案315
19,5 日誌記錄317
19,6 如果還沒煩318
19,7 如果還想學318
19,8 小結319
第20章 項目1:即時標記321
20,1 問題是什麼321
20,2 有用的工具322
20,3 準備工作322
20,4 初次實現323
20,4,1 找出文本塊323
20,4,2 添加一些標記324
20,5 再次實現325
20,5,1 處理程式326
20,5,2 處理程式的超類326
20,5,3 規則328
20,5,4 規則的超類329
20,5,5 過濾器329
20,5,6 語法分析器329
20,5,7 構造規則和過濾器330
20,5,8 整合333
20,6 進一步探索337
第21章 項目2:畫幅好畫338
21,1 問題338
21,2 有用的工具339
21,3 準備工作339
21,4 初次實現340
21,4,1 用reportlab畫圖340
21,4,2 構造折線341
21,4,3 編寫原型342
21,5 再次實現343
21,5,1 獲取數據343
21,5,2 使用lineplot類344
21,6 進一步探索345
第22章 項目3:萬能的xml 346
22,1 問題346
22,2 有用的工具347
22,3 準備工作348
22,4 初次實現349
22,4,1 創建簡單的內容處理程式349
22,4,2 創建html頁面351
22,5 再次實現353
22,5,1 調度程式的混入類353
22,5,2 實現首部、頁腳和默認的處理程式355
22,5,3 對目錄的支持355
22,5,4 事件處理程式356
22,6 進一步探索359
第23章 項目4:新聞聚合360
23,1 問題360
23,2 有用的工具361
23,3 準備工作361
23,4 初次實現361
23,5 再次實現364
23,6 進一步探索370
第24章 項目5:虛擬茶話會372
24,1 問題372
24,2 有用的工具372
24,3 準備工作373
24,4 初次實現374
24,4,1 chatserver類374
24,4,2 chatsession類375
24,4,3 整合377
24,5 再次實現378
24,5,1 基礎命令解釋379
24,5,2 房間379
24,5,3 登錄和退出房間380
24,5,4 主聊天室380
24,5,5 新的伺服器381
24,6 進一步探索385
第25章 項目6:使用cgi進行遠程編輯386
25,1 問題386
25,2 有用的工具386
25,3 準備工作387
25,4 初次實現387
25,5 再次實現388
25,5,1 創建檔案名稱表單388
25,5,2 創建編輯器的腳本389
25,5,3 編寫保存腳本390
25,5,4 運行編輯器391
25,6 進一步探索392
第26章 項目7:自定義電子公告板394
26,1 問題394
26,2 有用的工具395
26,3 準備工作395
26,4 初次實現396
26,5 再次實現399
26,5,1 編寫main腳本400
26,5,2 編寫view腳本401
26,5,3 編寫edit腳本402
26,5,4 編寫save腳本404
26,5,5 嘗試使用405
26,6 進一步探索406
第27章 項目8:使用xml-rpc進行檔案共享407
27,1 問題407
27,2 有用的工具408
27,3 準備工作408
27,4 初次實現409
27,4,1 實現一個簡單的節點409
27,4,2 嘗試使用首次實現414
27,5 再次實現415
27,5,1 創建客戶端界面415
27,5,2 引發異常416
27,5,3 驗證檔案名稱417
27,5,4 嘗試使用再次實現420
27,6 進一步探索421
第28章 項目9:檔案共享2——gui版本422
28,1 問題422
28,2 有用的工具422
28,3 準備工作422
28,4 初次實現423
28,5 再次實現425
28,6 進一步探索428
第29章 項目10:diy街機遊戲429
29,1 問題429
29,2 有用的工具430
29,2,1 Pygame 430
29,2,2 pygame,locals 430
29,2,3 pygame,display 431
29,2,4 pygame,font 431
29,2,5 pygame,sprite 431
29,2,6 pygame,mouse 432
29,2,7 pygame,event 432
29,2,8 pygame,image 432
29,3 準備工作432
29,4 初次實現433
29,5 再次實現436
29,6 進一步探索443
附錄a 簡明版本444
附錄b Python參考手冊451
附錄c 線上資源462
附錄d python 3,0 465