編輯推薦
案例豐富、注釋量大、實用性強。書中幾乎每段代碼都配有大量注釋,讀者能夠在*短時間內理解代碼的思路和要點,大幅度縮短閱讀和學習時間,由淺入深,層層遞進,平滑學習麯綫。
內容簡介
全書共13章:第1章介紹Python基本知識與概念,Python開發環境配置與使用,擴展庫安裝與使用;第2章講解Python運算符與錶達式以及內置函數的用法;第3章講解列錶、元組、字典、集閤等序列結構的常用方法和基本操作;第4章講解Python選擇結構與循環結構的語法和應用;第5章講解函數的定義與使用,不同類型的函數參數,變量的作用域以及lambda錶達式;第6章講解類的定義與實例化,多種不同類型的成員方法,特殊方法與運算符重載;第7章講解字符串對象及其方法的應用;第8章講解正則錶達式語法以及正則錶達式在Python中的應用;第9章講解文件操作的基本知識與Python文件對象,文本文件內容讀寫,二進製文件操作與對象序列化;第10章講解文件復製、移動、重命名、遍曆等文件級操作以及目錄操作有關知識;第11章講解Python中多種不同形式的異常處理結構;第12章講解Python對SQLite以及Access、MS SQL Server、MySQL等不同數據庫的操作;第13章講解數據分析、數據處理、數據可視化以及科學計算的有關知識。
本書完全麵嚮Python 3.x,全部案例代碼使用Python 3.5.x和Python 3.6.x編寫,大部分內容也同樣適用於Python 3.4.x。本書對Python內部工作原理進行一定程度的剖析,並適當介紹瞭Python代碼優化和安全編程的有關知識,可以滿足不同層次讀者的需求。
目錄
目錄
第1章第1章管中窺豹: Python概述1
1.1Python是這樣一種語言1
1.2Python版本之爭1
1.3Python編程規範與代碼優化建議2
1.4Anaconda3開發環境的安裝與使用3
1.5安裝擴展庫的幾種方法5
1.6標準庫與擴展庫中對象的導入與使用6
1.6.1import模塊名[as 彆名]6
1.6.2from模塊名import對象名[as彆名]7
1.6.3from模塊名 import *7
1.7__name__屬性的作用8
本章小結8
習題9
第2章第2章萬丈高樓平地起: 運算符、錶達式與內置對象10
2.1Python常用內置對象10
2.1.1常量與變量11
2.1.2數字12
2.1.3字符串與字節串15
2.1.4列錶、元組、字典、集閤16
2.2Python運算符與錶達式17
2.2.1算術運算符18
2.2.2關係運算符19
2.2.3成員測試運算符in與同一性測試運算符is20
2.2.4位運算符與集閤運算符21
2.2.5邏輯運算符22
2.2.6矩陣乘法運算符@22
2.2.7補充說明23
2.3Python關鍵字簡要說明23〖1〗〖2〗Python程序設計基礎(第2版)〖1〗目錄〖2〗2.4Python常用內置函數用法精要25
2.4.1類型轉換與類型判斷27
2.4.2最值與求和31
2.4.3基本輸入輸齣32
2.4.4排序與逆序33
2.4.5枚舉34
2.4.6map()、reduce()、filter()35
2.4.7range()37
2.4.8zip()38
2.4.9eval()39
2.5精彩案例賞析39
本章小結40
習題41
第3章第3章玄之又玄,眾妙之門: 詳解Python序列結構42
3.1列錶: 打瞭激素的數組42
3.1.1列錶創建與刪除43
3.1.2列錶元素訪問44
3.1.3列錶常用方法44
3.1.4列錶對象支持的運算符50
3.1.5內置函數對列錶的操作51
3.1.6列錶推導式語法與應用案例52
3.1.7切片操作的強大功能56
3.2元組: 輕量級列錶59
3.2.1元組創建與元素訪問59
3.2.2元組與列錶的異同點60
3.2.3生成器推導式61
3.3字典: 反映對應關係的映射類型62
3.3.1字典創建與刪除62
3.3.2字典元素的訪問63
3.3.3元素的添加、修改與刪除64
3.3.4標準庫collections中與字典有關的類65
3.4集閤: 元素之間不允許重復66
3.4.1集閤對象的創建與刪除66
3.4.2集閤操作與運算67
3.4.3集閤應用案例69
3.5序列解包的多種形式和用法71
本章小結73
習題74
第4章第4章反者,道之動: 程序控製結構75
4.1條件錶達式75
4.2選擇結構77
4.2.1單分支選擇結構77
4.2.2雙分支選擇結構78
4.2.3多分支選擇結構79
4.2.4選擇結構的嵌套80
4.3循環結構81
4.3.1for循環與while循環81
4.3.2break與continue語句82
4.3.3循環代碼優化技巧83
4.4精彩案例賞析84
本章小結90
習題90
第5章第5章代碼復用技術(一): 函數92
5.1函數定義與使用92
5.1.1基本語法92
5.1.2函數嵌套定義、可調用對象與修飾器94
5.1.3函數遞歸調用96
5.2函數參數97
5.2.1位置參數99
5.2.2默認值參數99
5.2.3關鍵參數101
5.2.4可變長度參數101
5.2.5傳遞參數時的序列解包102
5.3變量作用域103
5.4lambda錶達式105
5.5生成器函數設計要點107
5.6精彩案例賞析109
本章小結126
習題127
第6章第6章代碼復用技術(二): 麵嚮對象程序設計128
6.1類的定義與使用128
6.2數據成員與成員方法129
6.2.1私有成員與公有成員129
6.2.2數據成員130
6.2.3成員方法、類方法、靜態方法、抽象方法131
6.2.4屬性133
6.2.5類與對象的動態性、混入機製136
6.3繼承、多態137
6.3.1繼承137
6.3.2多態139
6.4特殊方法與運算符重載139
6.5精彩案例賞析142
6.5.1自定義隊列142
6.5.2自定義棧145
本章小結148
習題148
第7章第7章文本處理(一): 字符串150
7.1字符串編碼格式簡介151
7.2轉義字符與原始字符串152
7.3字符串格式化153
7.3.1使用%符號進行格式化153
7.3.2使用format()方法進行字符串格式化154
7.3.3格式化的字符串常量155
7.3.4使用Template模闆進行格式化156
7.4字符串常用操作156
7.4.1find()、rfind()、index()、rindex()、count()156
7.4.2split()、rsplit()、partition()、rpartition()157
7.4.3join()158
7.4.4lower()、upper()、capitalize()、title()、swapcase()159
7.4.5replace()、maketrans()、translate()160
7.4.6strip()、rstrip()、lstrip()161
7.4.7startswith()、endswith()161
7.4.8isalnum()、isalpha()、isdigit()、isdecimal()、isnumeric()、isspace()、
isupper()、islower()162
7.4.9center()、ljust()、rjust()、zfill()163
7.4.10字符串對象支持的運算符163
7.4.11適用於字符串對象的內置函數165
7.4.12字符串對象的切片操作167
7.5字符串常量167
7.6中英文分詞168
7.7漢字到拼音的轉換169
7.8精彩案例賞析170
本章小結173
習題173
第8章第8章文本處理(二): 正則錶達式174
8.1正則錶達式語法174
8.1.1正則錶達式基本語法174
8.1.2正則錶達式擴展語法175
8.1.3正則錶達式集錦176
8.2直接使用正則錶達式模塊re處理字符串177
8.3使用正則錶達式對象處理字符串181
8.4match對象183
8.5精彩案例賞析185
本章小結186
習題187
第9章第9章數據永久化: 文件內容操作188
9.1文件操作基本知識189
9.1.1內置函數open()189
9.1.2文件對象屬性與常用方法190
9.1.3上下文管理語句with191
9.2文本文件內容操作案例精選192
9.3二進製文件操作案例精選196
9.3.1使用pickle模塊讀寫二進製文件196
9.3.2使用struct模塊讀寫二進製文件198
9.3.3使用shelve模塊操作二進製文件199
9.3.4其他常見類型二進製文件操作案例199
本章小結206
習題206
第10章第10章文件與文件夾操作207
10.1os模塊207
10.2os.path模塊209
10.3shutil模塊211
10.4精彩案例賞析212
本章小結215
習題216
第11章第11章代碼質量保障: 異常處理結構與單元測試217
11.1異常處理結構217
11.1.1異常的概念與錶現形式217
11.1.2Python內置異常類層次結構218
11.1.3異常處理結構220
11.1.4斷言與上下文管理語句225
11.2單元測試unittest225
本章小結228
習題229
第12章數據庫應用開發230
12.1使用Python操作SQLite數據庫230
12.1.1Connection對象231
12.1.2Cursor對象232
12.1.3Row對象235
12.2使用Python操作其他關係型數據庫235
12.2.1操作Access數據庫236
12.2.2操作MS SQL Server數據庫237
12.2.3操作MySQL數據庫238
12.3操作MongoDB數據庫240
12.4精彩案例賞析242
本章小結244
習題245
第13章數據分析與科學計算可視化246
13.1擴展庫numpy簡介246
13.2科學計算擴展庫scipy256
13.2.1數學、物理常用常數與單位模塊constants256
13.2.2特殊函數模塊special257
13.2.3信號處理模塊signal257
13.2.4圖像處理模塊ndimage259
13.3擴展庫pandas簡介264
13.4統計分析標準庫statistics用法簡介269
13.5matplotlib272
13.5.1繪製正弦麯綫272
13.5.2繪製散點圖272
13.5.3繪製餅狀圖274
13.5.4繪製帶有中文標簽和圖例的圖275
13.5.5繪製圖例標簽中帶有公式的圖275
13.5.6使用pyplot繪製,多個圖形單獨顯示276
13.5.7繪製三維參數麯綫278
13.5.8繪製三維圖形278
13.6創建詞雲280
本章小結282
習題282
附錄附錄精彩在繼續283
附錄AGUI開發283
附錄B計算機圖形學編程286
附錄C圖像編程289
附錄D密碼學編程292
附錄E係統運維292
附錄FWindows係統編程293
附錄G軟件分析與逆嚮工程295
參考文獻297
精彩書摘
第3章第3章玄之又玄,眾妙之門: 詳解Python序列結構
Python中常用的序列結構有列錶、元組、字典、字符串、集閤等(雖然有人並不主張把字典和集閤看作序列,但這真的不重要)。從是否有序這個角度看,Python序列可以分為有序序列和無序序列;從是否可變來看,Python序列則可以分為可變序列和不可變序列兩大類,如圖3��1所示。另外,生成器對象和range、map、enumerate、filter、zip等對象的某些用法也類似於序列,盡管這些對象更大的特點是惰性求值。列錶、元組、字符串等有序序列以及range對象均支持雙嚮索引,第一個元素下標為0,第二個元素下標為1,以此類推;如果使用負數作為索引,則最後一個元素下標為-1,倒數第二個元素下標為-2,以此類推。可以使用負整數作為索引是Python有序序列的一大特色,熟練掌握和運用可以大幅度提高開發效率。
圖3��1Python序列分類示意圖
3.1列錶: 打瞭激素的數組
列錶(list)是最重要的Python內置對象之一,是包含若乾元素的有序連續內存空間。當列錶增加或刪除元素時,列錶對象自動進行內存的擴展或收縮,從而保證相鄰元素之間沒有縫隙。Python列錶的這個內存自動管理功能可以大幅度減少程序員的負擔,但插入和刪除非尾部元素時涉及列錶中大量元素的移動,會嚴重影響效率。另外,在非尾部位置插入和刪除元素時會改變該位置後麵的元素在列錶中的索引,這對於某些操作可能會導緻意外的錯誤結果。所以,除非確實有必要,否則應盡量從列錶尾部進行元素的追加與刪除操作。〖1〗〖2〗Python程序設計基礎(第2版)〖1〗第3章玄之又玄,眾妙之門: 詳解Python序列結構〖2〗在形式上,列錶的所有元素放在一對方括號[]中,相鄰元素之間使用逗號分隔。在Python中,同一個列錶中元素的數據類型可以各不相同,可以同時包含整數、實數、字符串等基本類型的元素,也可以包含列錶、元組、字典、集閤、函數以及其他任意對象。如果隻有一對方括號而沒有任何元素則錶示空列錶。下麵幾個都是閤法的列錶對象: [10,20,30,40]
['crunchy frog','ram bladder','lark vomit']
['spam',2.0,5,[10,20]]
[['file1',200,7],['file2',260,9]]
[{3},{5:6},(1,2,3)]Python采用基於值的自動內存管理模式,變量並不直接存儲值,而是存儲值的引用或內存地址,這也是python中變量可以隨時改變類型的重要原因。同理,Python列錶中的元素也是值的引用,所以列錶中各元素可以是不同類型的數據。
需要注意的是,列錶的功能雖然非常強大,但是負擔也比較重,開銷較大,在實際開發中,最好根據實際的問題選擇一種閤適的數據類型,要盡量避免過多使用列錶。
3.1.1列錶創建與刪除
使用“=”直接將一個列錶賦值給變量即可創建列錶對象。>>> a_list= ['a','b','mpilgrim','z','example']
>>> a_list= [] #創建空列錶也可以使用list()函數把元組、range對象、字符串、字典、集閤或其他可迭代對象轉換為列錶。需要注意的是,把字典轉換為列錶時默認是將字典的“鍵”轉換為列錶,而不是把字典的元素轉換為列錶,如果想把字典的元素轉換為列錶,需要使用字典對象的items()方法明確說明,當然也可以使用values()來明確說明要把字典的“值”轉換為列錶。>>> list((3,5,7,9,11)) #將元組轉換為列錶
[3,5,7,9,11]
>>> list(range(1,10,2))#將range對象轉換為列錶
前言/序言
Python由Guido van Rossum於1989年底開始研製,第一個版本發行於1991年。Python推齣不久就迅速得到瞭各行業人士的青睞,經過近30年的發展,已經滲透到計算機科學與技術、統計分析、逆嚮工程與軟件分析、電子取證、圖形圖像處理、人工智能、遊戲設計與策劃、網站開發、移動終端開發、大數據分析與處理、深度學習、科學計算可視化、雲計算、網絡爬蟲開發、係統運維、自然語言處理、密碼學、電子電路設計、樹莓派開發等專業和領域。目前,Python已經成為卡耐基梅隆大學、麻省理工學院、加州大學伯剋利分校、哈佛大學等國外很多大學計算機專業或非計算機專業的程序設計入門教學語言,國內也有不少學校的多個專業陸續開設瞭Python程序設計課程。
Python連續多年在TIOBE網站的編程語言排行榜上排名前十位,並於2011年1月被TIOBE網站評為2010年度語言。自2015年之後,Python一直穩居TIOBE編程語言排行榜前五位。在2014年12月份IEEE Spectrum推齣的編程語言排行榜中,Python排第5位,而在2017年7月份IEEE Spectrum推齣的編程語言排行榜中,Python上升到瞭第1位。
Python是一門免費、開源的跨平颱高級動態編程語言,支持命令式編程、函數式編程,完全支持麵嚮對象程序設計,語法簡潔清晰,並且擁有大量功能強大的標準庫和擴展庫以及眾多狂熱的支持者,可以幫助各領域的科研人員或策劃師甚至管理人員快速實現和驗證自己的思路與創意。Python用戶可以把主要精力放在業務邏輯的設計與實現上,而不用過多考慮語言本身的細節,開發效率非常高,其精妙之處令人擊節嘆賞。
Python是一門快樂的語言,學習和使用Python也是一個快樂的過程。與C語言係列和Java等語言相比,Python更加容易學習和使用,但這並不意味著可以非常輕鬆愉快地掌握Python。用戶熟練掌握和運用Python仍需要通過大量的練習來鍛煉自己的思維和熟悉Python編程模式,同時還需要經常關注Python社區優秀的代碼以及各種擴展庫的最新動態。當然,如果能夠適當瞭解Python標準庫以及擴展庫的內部工作原理,對於編寫正確而優雅的Python程序無疑是有很大幫助的。
Python是一門優雅的語言。Python語法簡潔清晰,並且提供瞭大量的內置對象和內置函數,編程模式非常符閤人類的思維方式和習慣。在有些編程語言中需要編寫大量代碼纔能實現的功能,在Python中僅需要調用內置函數或內置對象的方法即可實現。如果讀者已有其他程序設計語言的基礎,那麼在學習和使用Python時,一定不要把其他語言的編程習慣和風格帶到Python中來,因為這不僅可能會使得代碼變得非常冗餘
Python程序設計基礎(第2版)(計算機係列教材) epub pdf mobi txt 電子書 下載 2024
Python程序設計基礎(第2版)(計算機係列教材) 下載 epub mobi pdf txt 電子書