買這商品的人也買了...
-
$500$395 -
$680$537 -
$265Web API 的設計與開發 (Web API : the Good Parts)
-
$403瘋狂前端開發講義 — jQuery + AngularJS + Bootstrap 前端開發實戰
-
$650$507 -
$590$502 -
$360$284 -
$294$279 -
$210$200 -
$520$468 -
$450$338 -
$650$553 -
$474$450 -
$650$553 -
$550$495 -
$500$390 -
$480$379 -
$414$393 -
$834$792 -
$799$527 -
$780$616 -
$650$598 -
$980$774 -
$880$695 -
$1,200$948
相關主題
商品描述
本書全面而深入介紹了Python編程的相關內容,全書內容大致可分為四個部分,第一部分系統講解了Python的基本語法結構、函數編程、類和對象、模塊和包、異常處理等;第二部分主要介紹Python常用的內置模塊和包,這部分包括正則表達式支持IO編程、數據庫編程、並發編程、網絡通信編程等內容;第三部分主要介紹Python開發工程化方面的內容;第四部分則屬於“Python項目實戰”,這部分通過項目介紹了Python游戲開發、大數據展示、網絡爬蟲等熱門技能,尤其是網絡爬蟲和大數據展示,均是當下Python最熱的就業崗位。
作者簡介
李剛,十餘年軟件開發從業經驗,瘋狂軟件教育中心教學總監。瘋狂Java實訓營創始人,瘋狂Java體係原創圖書作者。廣東技術師範學院計算機科學系兼職副教授,CSDN特邀講師。培訓的學生已在騰訊、阿里、華為、IBM、網易、唯品會、電信盈科等名企就職。國內知名高端IT技術圖書作家,已出版《瘋狂Java講義》《瘋狂Android講義》《輕量級Java EE企業應用實戰》《瘋狂前端開發講義》《瘋狂HTML5/CSS3/JavaScript講義》《瘋狂iOS講義(基礎篇)(提高篇)》《瘋狂XML講義》《經典JavaEE企業應用實戰》《Struts 2.x quanwei指南》等著作。其中瘋狂Java體系圖書均已沉澱多年,贏得極高的市場認同,多次重印,多部著作印刷數量超過10萬冊,並被多所“985”“211”院校選作教材,部分圖書已被翻譯成繁體中文版,授權到中國台灣地區。
目錄大綱
第1章Python語言概述和開發環境1
1.1 Python簡介2
1.1.1 Python簡史2
1.1.2 Python的特點3
1.2 Python程序運行機制3
1.3開發Python的準備4
1.3.1在Windows上安裝Python 4
1.3.2在Linux上安裝Python 6
1.3.3在Mac OS X上安裝Python 7
1.4第一個Python程序7
1.4.1編輯Python源程序7
1.4.2使用IDLE運行Python程序8
1.4.3使用命令行工具運行Python程序8
1.5交互式解釋器10
1.6本章小結11
本章練習11
第2章變量和簡單類型12
2.1單行註釋和多行註釋13
2.2變量14
2.2.1 Python是弱類型語言14
2.2.2使用print函數輸出變量15
2.2.3變量的命名規則16
2.2.4 Python的關鍵字和內置函數17
2.3數值類型18
2.3.1整型18
2.3.2浮點型20
2.3.3複數20
2.4字符串入門21
2.4.1字符串和轉義字符21
2.4.2拼接字符串22
2.4.3 repr和字符串22
2.4.4使用input和raw_input獲取用戶輸入23
2.4.5長字符串24
2.4.6原始字符串24
2.4.7字節串(bytes) 25
2.5深入使用字符串27
2.5.1轉義字符27
2.5.2字符串格式化27
2.5.3序列相關方法29
2.5.4大小寫相關方法30
2.5.5刪除空白32
2.5.6查找、替換相關方法32
2.5.7分割、連接方法34
2.6運算符34
2.6.1賦值運算符34
2.6.2算術運算符35
2.6.3位運算符37
2.6.4擴展後的賦值運算符40
2.6.5索引運算符40
2.6.6比較運算符與bool類型40
2.6.7邏輯運算符41
2.6.8三目運算符42
2.6.9 in運算符44
2.6.10運算符的結合性和優先級44
2.7本章小結45
本章練習45
第3章列表、元組和字典46
3.1序列簡介47
3.1.1 Python的序列47
3.1.2創建列表和元組47
3.2列表和元組的通用用法48
3.2.1通過索引使用元素48
3.2.2子序列48
3.2.3加法49
3.2.4乘法49
3.2 .5 in運算符50
3.2.6長度、最大值和最小值50
3.2.7序列封包和序列解包51
3.3使用列表52
3.3.1創建列表52
3.3.2增加列表元素53
3.3.3刪除列表元素54
3.3.4修改列表元素55
3.3.5列表的其他常用方法56
3.4使用字典58
3.4.1字典入門58
3.4.2創建字典58
3.4.3字典的基本用法59
3.4.4字典的常用方法60
3.4 .5使用字典格式化字符串63
3.5本章小結63
本章練習64
第4章流程控制65
4.1順序結構66
4.2 if分支結構66
4.2.1不要忘記縮進67
4.2.2不要隨意縮進69
4.2.3不要遺忘冒號70
4.2.4 if條件的類型70
4.2.5 if分支的邏輯錯誤71
4.2.6 if表達式72
4.2.7 pass語句72
4.3斷言73
4.4循環結構73
4.4.1 while循環73
4.4.2使用while循環遍歷列表和元組74
4.4.3 for-in循環75
4.4.4使用for-in循環遍歷列表和元組76
4.4.5使用for-in循環遍歷字典77
4.4.6循環使用else 78
4.4.7嵌套循環79
4.4.8 for表達式80
4.4.9常用工具函數82
4.5控制循環結構83
4.5.1使用break結束循環83
4.5.2使用continue忽略本次循環的剩下語句85
4.5.3使用return結束方法85
4.6牛刀小試86
4.6.1數字轉人民幣讀法86
4.6.2繞圈圈87
4.6.3控制台五子棋89
4.6.4控制台超市系統90
4.7本章小結94
本章練習94
第5章函數和lambda表達式97
5.1函數入門98
5.1.1理解函數98
5.1.2定義函數和調用函數99
5.1.3為函數提供文檔100
5.1.4多個返回值100
5.1.5遞歸函數101
5.2函數的參數102
5.2.1關鍵字(keyword)參數102
5.2.2參數默認值103
5.2.3參數收集(個數可變的參數) 105
5.2.4逆向參數收集106
5.2.5函數的參數傳遞機制107
5.2.6變量作用域111
5.3局部函數113
5.4函數的高級內容114
5.4.1使用函數變量115
5.4. 2使用函數作為函數形參115
5.4.3使用函數作為返回值116
5.5局部函數與lambda表達式117
5.5.1回顧局部函數117
5.5.2使用lambda表達式代替局部函數118
5.6本章小結119
本章練習119
第6章類和對象120
6.1類和對象121
6.1.1定義類121
6.1.2對象的產生和使用122
6.1.3對象的產生和使用123
6.1.4實例方法和自動綁定self 124
6.2方法126
6.2.1類也能調用實例方法126
6.2.2類方法與靜態方法128
6.2.3 @函數裝飾器128
6.2.4再論類命名空間131
6.3成員變量131
6.3.1類變量和實例變量131
6.3.2使用property函數定義屬性134
6.4隱藏和封裝137
6.5類的繼承139
6.5 .1繼承的語法139
6.5.2關於多繼承140
6.5.3重寫父類的方法140
6.5.4使用未綁定方法調用被重寫的方法141
6.5.5使用super函數調用父類的構造方法142
6.6 Python的動態性143
6.6.1動態屬性與__slots__ 144
6.6.2使用type()函數定義類145
6.6.3使用metaclass 146
6.7多態147
6.7.1多態性147
6.7.2檢查類型149
6.8枚舉類150
6.8.1枚舉入門150
6.8.2枚舉的構造器152
6.9本章小結153
本章練習153
第7章異常處理154
7.1異常概述155
7.2異常處理機制156
7.2.1使用try.. .except捕獲異常156
7.2.2異常類的繼承體系157
7.2.3多異常捕獲159
7.2.4訪問異常信息160
7.2.5 else塊161
7.2.6使用finally回收資源163
7.2.7異常處理嵌套165
7.3使用raise引發異常165
7.3.1引發異常165
7.3. 2自定義異常類166
7.3.3 except和raise同時使用167
7.3.4 raise不需要參數168
7.4 Python的異常傳播軌跡168
7.5異常處理規則170
7.5.1不要過度使用異常171
7.5.2不要使用過於龐大的try塊172
7.5.3不要忽略捕獲到的異常172
7.6本章小結172
本章練習173
第8章Python類的特殊方法174
8.1常見的特殊方法175
8.1.1重寫__repr__方法175
8.1.2析構方法:__del__ 176
8.1.3 __dir__方法177
8.1.4 __dict__屬性178
8.1.5 __getattr__、__setattr__等178
8.2與反射相關的屬性和方法180
8.2.1動態操作屬性180
8.2.2 __call__屬性182
8.3與序列相關的特殊方法183
8.3.1序列相關方法183
8.3.2實現迭代器185
8.3.3擴展列表、元組和字典186
8.4生成器186
8.4.1創建生成器187
8.4.2生成器的方法189
8.5運算符重載的特殊方法191
8.5.1與數值運算符相關的特殊方法191
8.5.2與比較運算符相關的特殊方法194
8.5.3與單目運算符相關的特殊方法195
8.5.4與類型轉換相關的特殊方法196
8.5.5與常見的內建函數相關的特殊方法197
8.6本章小結198
本章練習198
第9章模塊和包199
9.1模塊化編程200
9.1.1導入模塊的語法200
9.1. 2定義模塊203
9.1.3為模塊編寫說明文檔203
9.1.4為模塊編寫測試代碼204
9.2加載模塊205
9.2.1使用環境變量205
9.2.2默認的模塊加載路徑208
9.2.3導入模塊的本質209
9.2.4模塊的__all__變量211
9.3使用包212
9.3.1什麼是包212
9.3.2定義包212
9.3.3導入包內成員214
9.4查看模塊內容216
9.4.1模塊包含什麼216
9.4.2使用__doc__屬性查看文檔217
9.4.3使用__file__屬性查看模塊的源文件路徑218
9.5本章小結218
本章練習218
第10章常見模塊219
10.1 sys 220
10.1.1獲取運行參數222
10.1.2動態修改模塊加載路徑223
10.2 os模塊223
10.3 random 225
10.4 time 227
10.5 JSON支持230
10.5.1 JSON的基本知識230
10.5.2 Python的JSON支持232
10.6正則表達式236
10.6.1 Python的正則表達式支持236
10.6.2正則表達式旗標241
10.6.3創建正則表達式242
10.6.4子表達式244
10.6.5貪婪模式與勉強模式246
10.7容器相關類247
10.7.1 set和frozenset 248
10.7.2雙端隊列(deque) 250
10.7.3 Python的堆操作253
10.8 collections下的容器支持255
10.8.1 ChainMap對象255
10.8.2 Counter對象257
10.8.3 defaultdict對象260
10.8.4 namedtuple工廠函數261
10.8.5 OrderedDict對象262
10.9函數相關模塊264
10.9.1 itertools模塊的功能函數264
10.9.2 functools模塊的功能函數267
10.10本章小結273
本章練習273
第11章圖形界面編程275
11.1 Python的GUI庫276
11.2 Tkinter GUI編程的組件277
11.3佈局管理器283
11.3.1 Pack佈局管理器283
11.3.2 Grid佈局管理器285
11.3.3 Place佈局管理器287
11.4事件處理288
11.4.1簡單的事件處理289
11.4.2事件綁定289
11.5 Tkinter常用組件293
11.5.1使用ttk組件293
11.5. 2 Variable類294
11.5.3使用compound選項295
11.5.4 Entry和Text組件297
11.5.5 Radiobutton和Checkbutton組件300
11.5.6 Listbox和Combobox組件303
11.5.7 Spinbox組件308
11.5.8 Scale和LabeledScale組件309
11.5.9 Labelframe組件312
11.5.10 Panedwindow組件314
11.5.11 OptionMenu組件316
11.6對話框(Dialog) 318
11.6.1普通對話框318
11.6.2自定義模式、非模式對話框320
11.6.3輸入對話框322
11.6.4文件對話框324
11.6.5顏色選擇對話框326
11.6.6消息框327
11.7菜單330
11.7.1窗口菜單330
11.7.2右鍵菜單334
11.8在Canvas中繪圖336
11.8.1 Tkinter Canvas的繪製功能336
11.8.2操作圖形項的標籤343
11.8.3操作圖形項345
11.8. 4為圖形項綁定事件349
11.8.5繪製動畫354
11.9本章小結357
本章練習357
第12章文件I/O 358
12.1使用pathlib模塊操作目錄359
12.1.1 PurePath的基本功能360
12.1.2 PurePath的屬性和方法362
12.1.3 Path的功能和用法363
12.2使用os.path操作目錄365
12.3使用fnmatch處理文件名匹配366
12.4打開文件367
12.4.1文件打開模式367
12.4.2緩衝368
12.5讀取文件369
12.5.1按字節或字符讀取369
12.5.2按行讀取371
12.5.3使用fileinput讀取多個輸入流371
12.5.4文件迭代器372
12.5.5管道輸入373
12.5.6使用with語句374
12.5.7使用linecache隨機讀取指定行376
12.6寫文件376
12.6.1文件指針的概念376
12.6.2輸出內容377
12.7 os模塊的文件和目錄函數378
12.7.1與目錄相關的函數379
12.7.2與權限相關的函數380
12.7.3與文件訪問相關的函數381
12.8使用tempfile模塊生成臨時文件和臨時目錄383
12.9本章小結385
本章練習385
第13章數據庫編程386
13.1 Python數據庫API簡介387
13.1.1全局變量387
13.1.2數據庫API的核心類388
13.1.3操作數據庫的基本流程389
13.2操作SQLite數據庫389
13.2.1創建數據表390
13.2.2使用SQLite Expert工具391
13.2.3使用序列重複執行DML語句393
13.2.4執行查詢395
13.2.5事務控制396
13.2.6執行SQL腳本397
13.2.7創建自定義函數398
13.2.8創建聚集函數399
13.2.9創建比較函數400
13.3操作MySQL數據庫401
13.3.1下載和安裝MySQL數據庫401
13.3.2使用pip工具管理模塊404
13.3.3執行DDL語句405
13.3.4執行DML語句407
13.3.5執行查詢語句408
13.3.6調用存儲過程409
13.4本章小結410
本章練習411
第14章並發編程412
14.1線程概述413
14.1.1線程和進程413
14.1.2多線程的優勢414
14.2線程的創建和啟動415
14.2.1調用Thread類的構造器創建線程415
14.2.2繼承Thread類創建線程類417
14.3線程的生命週期418
14.3.1新建和就緒狀態418
14.3.2運行和阻塞狀態419
14.3.3線程死亡420
14.4控制線程421
14.4.1 join線程422
14.4.2後台線程422
14.4.3線程睡眠:sleep 423
14.5線程同步424
14.5.1線程安全問題424
14.5.2同步鎖(Lock) 425
14.5.3死鎖428
14.6線程通信430
14.6.1使用Condition實現線程通信430
14.6.2使用隊列(Queue)控制線程通信433
14.6.3使用Event控制線程通信434
14.7線程池436
14.7.1使用線程池437
14.7.2獲取執行結果439
14.8線程相關類440
14.8.1線程局部變量440
14.8.2定時器441
14.8.3任務調度442
14.9多進程443
14.9.1使用fork創建新進程443
14.9.2使用multiprocessing.Process創建新進程444
14.9.3 Context和啟動進程的方式446
14.9.4使用進程池管理進程448
14.9.5進程通信449
14.10本章小結451
本章練習451
第15章網絡編程452
15.1網絡編程的基礎知識453
15.1.1網絡基礎知識453
15.1.2 IP地址和端口號454
15.2 Python的基本網絡支持455
15.2.1 Python的網絡模塊概述455
15.2.2使用urllib.parse子模塊456
15.2.3使用urllib.request讀取資源459
15.2.4管理cookie 464
15.3基於TCP協議的網絡編程467
15.3.1 TCP協議基礎467
15.3.2使用socket創建TCP服務器端468
15.3 .3使用socket通信469
15.3.4加入多線程470
15.3.5記錄用戶信息472
15.3.6半關閉的socket 477
15.3.7 selectors模塊478
15.4基於UDP協議的網絡編程480
15.4.1 UDP協議基礎480
15.4.2使用socket發送和接收數據481
15.4.3使用UDP協議實現多點廣播483
15.5電子郵件支持484
15.5.1使用smtplib模塊發送郵件484
15.5.2使用poplib模塊收取郵件488
15.6本章小結491
本章練習491
第16章文檔和測試492
16.1使用pydoc生成文檔493
16.1.1在控制台中查看文檔494
16.1.2生成HTML文檔495
16.1.3啟動本地服務器來查看文檔信息495
16.1. 4查找模塊496
16.2軟件測試概述497
16.2.1軟件測試的概念和目的497
16.2.2軟件測試的分類498
16.2.3開發活動和測試活動499
16.2.4常見的Bug管理工具499
16.3文檔測試500
16.4單元測試502
16.4.1單元測試概述502
16.4.2單元測試的邏輯覆蓋504
16.5使用PyUnit(unittest) 506
16.5.1 PyUnit(unittest)的用法507
16.5.2運行測試510
16.5.3使用測試包511
16.5.4測試固件之setUp和tearDown 513
16.5.5跳過測試用例515
16.6本章小結516
本章練習516
第17章打包和發布517
17.1使用zipapp模塊518
17.1.1生成可執行的Python檔案包518
17.1.2創建獨立應用519
17.2使用PyInstaller生成可執行程序520
17.2.1安裝PyInstaller 520
17.2.2生成可執行程序521
17.3本章小結523
本章練習523
第18章合金彈頭524
18.1合金彈頭遊戲簡介525
18.2 pygame簡介525
18.2.1安裝pygame 526
18.2.2 pygame常用的遊戲API 527
18.3開發遊戲界面組件529
18.3.1遊戲界面分析529
18.3.2實現“怪物”類529
18.3.3實現怪物管理534
18.3.4實現“子彈”類536
18.3.5加載、管理遊戲圖片538
18.3.6讓遊戲“運行”起來540
18.4增加“角色” 541
18.4.1開發“角色”類541
18.4.2添加角色547
18.5合理繪製地圖550
18.6增加音效551
18.7增加遊戲場景554
18.8本章小結558
本章練習558
第19章數據可視化559
19.1使用Matplotlib生成數據圖560
19.1 .1安裝Matplotlib包560
19.1.2 Matplotlib數據圖入門561
19.1.3管理圖例562
19.1.4管理坐標軸565
19.1.5管理多個子圖566
19.2功能豐富的數據圖570
19.2.1餅圖570
19.2. 2柱狀圖571
19.2.3水平柱狀圖573
19.2.4散點圖574
19.2.5等高線圖576
19.2.6 3D圖形577
19.3使用Pygal生成數據圖578
19.3.1安裝Pygal包578
19.3.2 Pygal數據圖入門578
19.3.3配置Pygal數據圖580
19.4 Pygal支持的常見數據圖581
19.4.1折線圖581
19.4.2水平柱狀圖和水平折線圖581
19.4.3疊加柱狀圖和疊加折線圖582
19.4.4餅圖583
19.4.5點圖584
19.4.6儀表(Gauge)圖585
19.4.7雷達圖586
19.5處理數據587
19.5.1 CSV文件格式587
19.5 .2 JSON數據590
19.5.3數據清洗593
19.5.4讀取網絡數據595
19.6本章小結597
本章練習597
第20章網絡爬蟲598
20.1 Scrapy簡介599
20.1.1了解Scrapy 599
20.1.2安裝Scrapy 600
20.2使用爬蟲爬取、分析招聘信息601
20.2.1創建Scrapy項目601
20.2.2使用shell調試工具603
20.2.3 Scrapy開發步驟606
20.2.4使用JSON導出信息611
20.2.5將數據寫入數據庫611
20.2.6使用Pygal展示招聘信息612
20.3處理反爬蟲613
20.3.1使用shell調試工具分析目標站點614
20.3.2使用Scrapy爬取高清圖片616
20.3.3應對反爬蟲的常見方法618
20.3.4整合Selenium模擬瀏覽器行為620
20.4本章小結624
本章練習624