Python 學習手冊(第三版)

Python 學習手冊(第三版)

《Python 學習手冊(第三版)》是一本(美)Mark Lutz編寫,由機械工業出版社在2009年出版的書籍。

基本介紹

  • 書名:Python 學習手冊(第三版)
  • 作者: (美)Mark Lutz
  • 原版名稱: Learning Python, 3rd Edition
  • 譯者:侯靖
  • ISBN:9787111267768
  • 頁數:656
  • 出版社:機械工業出版社
  • 出版時間:2009 年8月
  • 開本:16
  • 叢書名:O'Reilly系列
內容簡介,作者簡介,目錄,

內容簡介

python可移植、功能強大、易於使用,是編寫獨立應用程式和腳本應用程式的理想選擇。無論你是剛接觸編程或者剛接觸python,通過學習本書,你可以迅速高效地精通核心python語言基礎。讀完本書,你會對這門語言有足夠的了解,從而可以在你所從事的任何套用領域中使用它。.
本書是作者根據過去10年用於教學而廣為人知的培訓課程的材料編寫而成的。除了有許多詳實說明和每章小結之外,每章還包括一個頭腦風暴:這是本書獨特的一部分,配合以實用的練習題和複習題,讓讀者練習新學的技巧並測試自己的理解程度。
本書包括:
·類型和操作——深入討論python主要的內置對象類型:數字、列表和字典等。
·語句和語法——在python中輸入代碼來建立並處理對象,以及python一般的語法模型。
·函式——python基本的面向過程工具,用於組織代碼和重用。..
·模組——封裝語句、函式以及其他工具,從而可以組織成較大的組件。
·類和oop——python可選的面向對象編程工具,可用於組織程式代碼從而實現定製和重用。
·異常和工具——異常處理模型和語句,並介紹編寫更大程式的開發工具。
·討論python 3.0。
本書讓你對python語言有深入而完整的了解,從而幫助你理解今後遇到的任何python應用程式實例。如果你準備探索google和youtube為什麼選中了python,本書就是你入門的最佳指南。
本課程是Python程式語言的經典入門課程,Python是一種很流行的程式語言,可以作為獨立的程式和腳本在各種領域中套用,Python免費、可移植、功能強大,而且使用起來相當容易。無論你是編程初學者,還是專業開發人員,通過學習本課程你可以快速掌握Python語言。

作者簡介

Mark Lutz是世界級的Python培訓講師。他是暢銷Python書籍的作者,從1992年起,他就是Python社區的先鋒。他也是《Programming Python》和《Python Pocket Reference》兩本書的作者。從1997年起,Mark開始教授Python課程,截止到2007年,他開辦了200個以上的Python短期培訓課程。Mark擁有計算機科學學士和碩士學位,而且有25年的軟體開發經驗。

目錄

前言. 1
第一部分使用入門第1章問答環節. 19
人們為何使用python 19
軟體質量20
開發者效率21
python 是“腳本語言”嗎21
好吧,python 的缺點是什麼呢23
如今誰在使用python 23
使用python 可以做些什麼24
系統編程25
用戶圖形接口25
internet 腳本25
組件集成26
資料庫編程26
快速原型27
數值計算和科學計算編程27
遊戲、圖像、人工智慧、xml 、機器人等27
python 有哪些技術上的優點27
面向對象28
免費28
.可移植28
功能強大29
可混合30
使用簡單31
python 是工程,不是藝術31
簡單易學33
名字來源於monty python33
python 和其他語言比較起來怎么樣33
本章小結34
頭腦風暴35
本章習題35
習題解答35
第2章python 如何運行程式. 37
python 解釋器簡介37
程式執行39
程式設計師的視角39
python 的視角40
執行模組的變種42
python 實現的替代者42
執行最佳化工具44
凍結二進制檔案45
未來的可能性46
本章小結47
頭腦風暴48
本章習題48
習題解答48
第3章如何運行程式 49
互動模式下編寫代碼49
在互動提示模式下測試代碼51
使用互動提示模式52
系統命令行和檔案52
使用命令行和檔案55
unix 可執行腳本(#!) 56
unix env 查找技巧57
點擊檔案圖示57
在windows 中點擊圖示58
raw_input 的技巧58
圖示點擊的其他限制60
模組導入和重載61
模組的顯要特性:屬性62
import 和reload 的使用注意事項65
idle 用戶界面66
idle 基礎66
使用idle 68
高級idle 工具70
其他的ide70
嵌入式調用71
動付二進制的可執行性72
文本編輯器啟動的選擇72
其他的啟動選擇73
未來的可能73
我應該選用哪種73
本章小結74..
頭腦風暴75
本章習題75
習題解答75
頭腦風暴:第一部分練習題77
第二部分類型和運算第4章介紹python 對象類型. 81
為什麼使用內置類型82
python 的核心數據類型82
數字84
字元串85
序列的操作85
不可變性87
類型特定的方法88
尋求幫助89
編寫字元串的其他方法90
模式匹配91
列表91
序列操作92
類型特定的操作92
邊界檢查93
嵌套93
列表解析94
字典95
映射操作95
重訪嵌套96
鍵的排序:for 循環97
疊代和最佳化99
不存在的鍵:if 測試100
元組101
為什麼要用元組101
檔案101
其他檔案類工具102
其他核心類型103
如何破壞代碼的靈活性104
用戶定義的類104
剩餘的內容105
本章小結106
頭腦風暴 107
本章習題107
習題解答107
第5章數字 109
python 的數字類型109
數字常量109
內置數學工具和擴展 111
python 表達式操作符 112
混合操作所遵循的操作符優先權. 113
括弧分組的子表達式 113
混合類型自動升級 114
預習:運算符重載 115
在實際套用中的數字 115
變數和基本的表達式 115
數字顯示的格式 117
str 和repr 顯示格式 118
除法: 傳統除法、floor 除法和真除法. 118
位操作 119
長整型數120
複數121
十六進制和八進制記數121
其他的內置數學工具122
其他數字類型123
小數數字124
集合125
布爾型126
第三方擴展127
本章小結127
頭腦風暴 128
本章習題128
習題解答128
第6章動態類型簡介. 129
缺少類型聲明語句的情況129
變數、對象和引用129
類型屬於對象,而不是變數131
對象的垃圾收集132
共享引用133
共享引用和在原處修改135
共享引用和相等136
動態類型隨處可見138
本章小結138
頭腦風暴 139
本章習題139
習題解答139
第7章字元串 140
字元串常量141
單雙引號字元串是一樣的142
用轉義序列代表特殊位元組142
字元串抑制轉義145
三重引號編寫多行字元串塊146
字元串編碼更大的字元集147
實際套用中的字元串149
基本操作149
索引和分片151
為什麼要在意:分片154
字元串轉換工具154
修改字元串157
字元串格式化158
更高級的字元串格式化159
基於字典的字元串格式化160
字元串方法161
字元串方法實例:修改字元串162
字元串方法實例:文本解析164
實際套用中的其他常見字元串方法165
最初的字元串模組166
通常意義下的類型分類168
同樣分類的類型共享其操作集合168
可變類型能夠在原處修改168
本章小結169
頭腦風暴 170
本章習題170
習題解答170
第8章列表與字典. 171
列表171
實際套用中的列表174
基本列表操作174
索引、分片和矩陣174
原處修改列表175
字典179
實際套用中的字典181
字典的基本操作181
原處修改字典182
其他字典方法183
語言表184
字典用法注意事項185
為什麼要在意字典接口189
本章小結189
頭腦風暴 190
本章習題190
習題解答190
第9章元組、檔案及其他 191
元組191
實際套用中的元組192
為什麼有了列表還要元組194
檔案195
打開檔案195
使用檔案196
實際套用中的檔案197
其他檔案工具201
重訪類型分類201
為什麼要在意操作符重載202
對象靈活性202
引用vs 拷貝204
比較、相等性和真值206
python 中真和假的含義207
python 的類型層次209
python 中的其他類型210
內置類型陷阱210
賦值生成引用,而不是拷貝210
重複能夠增加層次深度. 211
留意循環數據結構212
不可變類型不可以在原處改變212
本章小結213
頭腦風暴 214
本章習題214
習題解答214
頭腦風暴:第二部分練習題215
第三部分語句和語法第10 章python 語句簡介. 221
重訪python 程式結構221
python 的語句222
兩個if 的故事223
python 增加了什麼224
python 刪除了什麼224
終止行就是終止語句225
為什麼使用縮進語法226
幾個特殊實例228
簡短實例:互動循環230
一個簡單的互動式循環230
對用戶輸入數據做數學運算231
用測試輸入數據來處理錯誤232
用try 語句處理錯誤233
嵌套代碼三層234
本章小結235
頭腦風暴 236
本章習題236
習題解答236
第11 章賦值、表達式和列印 237
賦值語句237
賦值語句的形式238
序列賦值239
多目標賦值語句242
增強賦值語句243
變數命名規則245
表達式語句248
表達式語句和在原處的修改249
列印語句249
python 的“hello world ”程式250
重定向輸出流251
print ]] file 擴展252
本章小結253
頭腦風暴 255
本章習題255
習題解答255
第12 章if 測試. 256
if 語句256
通用格式256
基本例子257
多路分支257
python 語法規則259
代碼塊分隔設定260
語句的分隔設定261
一些特殊情況262
真值測試262
if/else 三元表達式264
為什麼要在意布爾值266
本章小結267
頭腦風暴 268
本章習題268
習題解答268
第13 章while 和for 循環 269
while 循環269
一般格式269
例子270
break 、continue 、pass 和循環else 271
一般循環格式271
例子271
為什麼要在意“模擬c 語言的while 循環”275
for 循環275
一般格式276
例子276
為什麼要在意“檔案掃描”279
疊代器:初探280
檔案疊代器281
其他內置類型疊代器283
其他疊代環境284
用戶定義的疊代器285
編寫循環的技巧285
循環計數器:while 和range 286
非完備遍歷:range 287
修改列表:range 288
並行遍歷:zip 和map289
產生偏移和元素:enumerate 291
列表解析:初探292
列表解析基礎293
對檔案使用列表解析294
擴展列表解析語法295
本章小結296
頭腦風暴 297
本章習題297
習題解答297
第14 章文檔 299
python 文檔資源299
#注釋300
dir 函式300
文檔字元串:__doc__ 301
pydoc:help 函式304
pydoc:html 報表306
標準手冊集309
網路資源310
已出版的書籍. 311
常見編寫代碼的陷阱 311
本章小結313
頭腦風暴 314
本章習題314
習題解答314
頭腦風暴:第三部分練習題315
第四部分函式第15 章函式基礎 319
為何使用函式320
編寫函式320
def 語句322
def 語句是實時執行的322
第一個例子:定義和調用323
定義323
調用324
python 中的多態324
第二個例子:尋找序列的交集325
定義326
調用326
重訪多態327
本地變數328
本章小結328
頭腦風暴 329
本章習題329
習題解答329
第16 章作用域和參數 330
作用域法則330
函式作用域基礎331
變數名解析:legb 原則332
作用域實例334
內置作用域334
global 語句336
最小化全局變數337
最小化檔案間的修改338
其他訪問全局變數的方法339
作用域和嵌套函式340
嵌套作用域的細節341
嵌套作用域舉例341
傳遞參數347
參數和共享引用348
避免可變參數的修改349
對參數輸出進行模擬350
特定的參數匹配模型351
關鍵字參數和默認參數的實例352
任意參數的實例354
關鍵字參數和默認參數的混合356
min 調用357
一個更有用的例子:通用set 函式359
參數匹配:細節360
為什麼要在意:關鍵字參數361
本章小結362
頭腦風暴 363
本章習題363
習題解答364
第17 章函式的高級話題. 365
匿名函式:lambda365
lambda 表達式365
為什麼使用lambda 367
如何(不要)讓python 代碼變得晦澀難懂368
嵌套lambda 和作用域369
作為參數來套用函式370
內置函式apply370
為什麼要在意:回調371
傳入關鍵字參數372
和apply 類似的調用語法372
在序列中映射函式:map 373
函式式編程工具:filter 和reduce 374
重訪列表解析:映射376
列表解析基礎376
增加測試和嵌套循環377
列表解析和矩陣380
理解列表解析381
為什麼要在意:列表解析和map 382
重訪疊代器:生成器383
生成器函式實例383
擴展生成器函式協定:send 和next385
疊代器和內置類型386
生成器表達式:疊代器遇到列表解析387
對疊代的各種方法進行計時388
函式設計概念390
函式是對象:簡潔調用392
函式陷阱393
本地變數是靜態檢測的393
默認和可變對象395
沒有return 語句的函式396
嵌套作用域的循環變數397
本章小結397
頭腦風暴 398
本章習題398
習題解答398
頭腦風暴:第四部分練習題400
第五部分模組第18 章模組:宏偉藍圖. 405
為什麼使用模組405
python 程式構架406
如何組織一個程式407
導入和屬性407
標準庫模組409
import 如何工作409
搜尋410
編譯(可選)414
運行414
第三方工具:distutils 415
本章小結415
頭腦風暴 417
本章習題417
習題解答417
第19 章模組代碼編寫基礎. 418
模組的創建418
模組的使用419
import 語句419
from 語句420
from * 語句420
導入只發生一次420
import 和from 是賦值語句421
檔案間變數名的改變422
import 和from 的對等性422
from 語句潛在的陷阱423
模組命名空間425
檔案生成命名空間425
屬性名的點號運算427
導入和作用域427
命名空間的嵌套428
重載模組429
reload 基礎430
reload 實例431
為什麼要在意:模組重載432
本章小結432
頭腦風暴 434
本章習題434
習題解答434
第20 章模組包 435
包導入基礎435
包和搜尋路徑設定436
__init__.py 包檔案436
包導入實例438
包對應的from 和import439
為什麼要使用包導入440
三個系統的傳說441
為什麼要在意:模組包443
本章小結443
頭腦風暴 445
本章習題445
習題解答445
第21 章高級模組話題 446
在模組中隱藏數據446
最小化from * 的破壞:_x 和__all__. 446
啟用以後的語言特性447
混合用法模式:__name__ 和__main__ 447
以__name__ 進行單元測試448
修改模組搜尋路徑450
import as 擴展451
相對導入語法451
為什麼使用相對導入452
模組設計理念454
模組是對象:元程式455
模組陷阱457
頂層代碼的語句次序的重要性457
通過變數名字元串導入模組458
from 複製變數名,而不是連線459
from * 會讓變數語義模糊460
reload 不會影響from 導入460
reload 、from 以及互動模式測試461
reload 的使用沒有傳遞性462
遞歸形式的from import 無法工作463
本章小結464
頭腦風暴 465
本章習題465
習題解答465
頭腦風暴:第五部分練習題466
第六部分類和oop 第22 章oop :宏偉藍圖 471
為何使用類472
概覽oop473
屬性繼承搜尋473
類和實例475
類方法調用476
編寫類樹476
oop 是為了代碼重用479
本章小結481
頭腦風暴 483
本章習題483
習題解答483
第23 章類代碼編寫基礎. 485
類產生多個實例對象485
類對象提供默認行為486
實例對象是具體的元素486
第一個例子486
類通過繼承進行定製489
第二個例子489
類是模組內的屬性491
類可以截獲python 運算符492
第三個例子493
為什麼要使用運算符重載494
世界上最簡單的python 類495
本章小結497
頭腦風暴 499
本章習題499
習題解答499
第24 章類代碼編寫細節. 501
class 語句501
一般形式501
例子502
方法504
例子505
調用超類的構造器506
其他方法調用的可能性506
繼承507
屬性樹的構造507
繼承方法的專有化508
類接口技術509
抽象超類510
運算符重載 511
常見的運算符重載方法512
__getitem__ 攔截索引運算513
__getitem__ 和__iter__ 實現疊代513
用戶定義的疊代器514
__getattr__ 和__setattr__ 捕捉屬性的引用518
模擬實例屬性的私有性520
__repr__ 和__str__ 會返回字元串表達形式520
__radd__ 處理右側加法522
__call__ 攔截調用523
函式接口和回調代碼523
__del__ 是析構器525
命名空間:完整的內容526
簡單變數名:如果賦值就不是全局變數526
屬性名稱:對象命名空間527
python 命名空間的“禪”:賦值將變數名分類527
命名空間字典529
命名空間連結531
一個更實際的例子533
本章小結536
頭腦風暴 537
本章習題537
習題解答537
第25 章類的設計 539
python 和oop 539
通過調用標記進行重載(或不要)540
類作為記錄540
類和繼承:“是一個”關係542
類和組合:“有一個”關係544
重訪流處理器545
為什麼要在意:類和持續性548
oop 和委託548
多重繼承549
類是對象:通用對象的工廠552
為什麼有工廠554
方法是對象:綁定或無綁定554
重訪文檔字元串556
為什麼要在意:綁定方法和回調函式557
類和模組558
本章小結558
頭腦風暴 559
本章習題559
習題解答559
第26 章類的高級主題 560
擴展內置類型560
通過嵌入擴展類型560
通過子類擴展類型561
類的偽私有屬性563
變數名壓縮概覽564
為什麼使用偽私有屬性564
新式類566
鑽石繼承變動567
其他新式類的擴展570
靜態和類方法573
使用靜態和類方法575
函式裝飾器576
裝飾器例子578
類陷阱579
修改類屬性的副作用579
多重繼承:順序很重要580
類、方法以及嵌套作用域581
“過度包裝”583
本章小結584
頭腦風暴 585
本章習題585
習題解答585
頭腦風暴:第六部分練習題586
第七部分異常和工具第27 章異常基礎 595
為什麼使用異常596
異常的角色596
異常處理:簡明扼要597
try/except/else 語句601
try 語句分句602
try/else 分句604
例子:默認行為605
例子:捕捉內置異常606
try/finally 語句607
例子:利用try/finally 編寫終止行為608
統一try/except/finally 609
通過嵌套合併finally 和except610
合併try 的例子 611
raise 語句612
例子:引發並捕捉用戶定義的異常613
例子:利用raise 傳入額外的數據613
例子:利用raise 傳遞異常614
assert 語句614
例子:收集約束條件(但不是錯誤)615
with/as 環境管理器616
基本使用616
環境管理協定617
為什麼要在意:錯誤檢查618
本章小結620
頭腦風暴 621
本章習題621
習題解答621
第28 章異常對象 622
基於字元串的異常623
字元串異常就要出局了623
基於類的異常624
類異常例子624
為什麼使用類異常626
內置exception 類629
定義異常文本630
傳送額外數據和實例行為631
raise 語句的一般形式633
本章小結634
頭腦風暴 636
本章習題636
習題解答636
第29 章異常的設計 637
嵌套異常處理器637
例子:控制流程嵌套638
例子:語法嵌套化639
異常的習慣用法641
異常不總是錯誤641
函式信號條件和raise641
在try 外進行調試642
運行進程中的測試643
關於sys.exc_info 644
與異常有關的技巧644
應該包裝什麼644
捕捉太多:避免空except 語句645
捕捉過少:使用基於類的分類647
異常陷阱647
字元串異常匹配是通過同一性而不是通過值648
捕捉到錯誤的異常649
核心語言總結649
python 工具集650
大型項目的開發工具651
本章小結653
頭腦風暴 655
本章習題655
習題解答655
頭腦風暴:第七部分練習題656
第八部分附錄
附錄a 安裝和配置
附錄b 每部分練習題解答

相關詞條

熱門詞條

聯絡我們