發表於2024-11-23
《Python可以這樣學》共分16章,對Python內部工作原理進行瞭一定深度的剖析,99%以上的案例代碼使用Python 3.5.1實現,也適用於Python 3.4.x(除少數幾個新特性之外)和*新版本Python 3.5.2以及Python 3.6.0,極個彆案例使用Python 2.7.11實現(同樣適用於其他版本Python 2.7.x,包括*新的Python2.7.12),適當介紹瞭Python代碼優化、係統編程和安全編程的有關知識,滿足不同層次讀者的需要。另外,書中通過小提示、小技巧、注意拓展知識等形式介紹瞭更多的內容,全部內容遠比章節目錄所顯示的要多,需要認真閱讀纔能真正領會其中的奧妙。
本書適閤作為Python程序員的開發指南,也可以作為高等院校計算機專業、軟件工程專業等專業的Python教材,還可以作為Python愛好者的指導用書。
董付國,副教授。自2000年參加工作以來,先後講授過匯編語言、C/C++/C#、Java和Python等多門編程語言,以及計算機組成原理、計算機網絡、數據庫原理、數據結構、操作係統、計算機安全、網絡安全、計算機圖形學、數字圖像處理、遊戲策劃等多門課程,齣版《Python程序設計》、《Python程序設計基礎》、《Python程序設計(第2版)》係列教材,開發過多套涉及不同領域的管理係統,在國內外高水平學術期刊與會議上發錶論文40餘篇,其中近30篇被EI檢索。學習工作之餘*大的愛好是打太極拳。
第1章Python基礎1
1.1Python是一種什麼樣的語言1
1.2Python開發環境2
1.2.1百傢爭鳴的繁榮景象2
1.2.2IDLE簡單使用6
1.3變量、運算符與錶達式9
1.3.1Python變量與內置數據類型9
1.3.2常用內置函數15
1.3.3運算符與錶達式21
1.3.4人機對話基本接口25
1.4模塊安裝與使用28
1.4.1安裝Python擴展庫28
1.4.2模塊導入與使用30
1.4.3編寫自己的模塊和包32
第2章Python序列35
2.1列錶與列錶推導式36
2.1.1列錶創建與刪除36
2.1.2列錶常用方法38
2.1.3列錶推導式46
2.1.4切片50
2.2元組與生成器推導式54
2.2.1元組54
2.2.2生成器推導式55
2.3字典57
2.3.1字典創建和元素添加、修改與刪除57
2.3.2訪問字典對象的數據59
2.3.3案例精選61
2.4集閤63[1]〖2〗Python可以這樣學[1]目錄〖2〗2.4.1集閤基礎知識63
2.4.2集閤操作與運算64
2.4.3案例精選67
2.5序列解包69
第3章程序控製結構與函數設計71
3.1選擇結構71
3.1.1條件錶達式71
3.1.2選擇結構的幾種形式73
3.1.3案例精選79
3.2循環結構82
3.2.1for循環與while循環的基本語法82
3.2.2break與continue語句83
3.2.3循環代碼優化技巧84
3.2.4案例精選86
3.3函數設計與使用90
3.3.1基本語法91
3.3.2函數參數不得不說的幾件事94
3.3.3變量作用域99
3.3.4lambda錶達式102
3.3.5案例精選104
第4章麵嚮對象程序設計122
4.1基礎知識122
4.1.1類的定義與使用122
4.1.2私有成員與公有成員123
4.1.3數據成員125
4.1.4方法126
4.1.5屬性129
4.1.6繼承131
4.1.7特殊方法與運算符重載134
4.2案例精選135
4.2.1自定義數組135
4.2.2自定義矩陣141
4.2.3自定義隊列147
4.2.4自定義棧151
4.2.5自定義二叉樹154
4.2.6自定義有嚮圖157
4.2.7自定義集閤158
第5章字符串與正則錶達式165
5.1字符串165
5.1.1字符串格式化的兩種形式168
5.1.2字符串常用方法171
5.1.3案例精選186
5.2正則錶達式190
5.2.1正則錶達式語法與子模式擴展語法190
5.2.2re模塊方法與正則錶達式對象193
5.2.3案例精選199
第6章文件與文件夾操作206
6.1文件對象常用方法與屬性207
6.2文本文件操作案例精選209
6.3二進製文件操作案例精選217
6.3.1使用pickle模塊讀寫二進製文件217
6.3.2使用struct模塊讀寫二進製文件219
6.3.3使用shelve模塊操作二進製文件220
6.3.4使用marshal模塊操作二進製文件220
6.4文件與文件夾操作221
6.4.1標準庫os、os.path與shutil簡介221
6.4.2案例精選227
第7章異常處理結構、代碼測試與調試252
7.1異常處理結構252
7.1.1異常是什麼252
7.1.2Python內置異常類層次結構254
7.1.3常見異常處理結構形式255
7.2代碼測試262
7.2.1doctest263
7.2.2單元測試264
7.3代碼調試270
7.3.1使用IDLE調試270
7.3.2使用pdb調試273
階段性寄語278
第8章數據庫應用開發279
8.1使用Python操作SQLite數據庫279
8.1.1Connection對象280
8.1.2Cursor對象281
8.1.3Row對象284
8.2使用Python操作其他關係型數據庫285
8.2.1操作Access數據庫285
8.2.2操作MS SQL Server數據庫286
8.2.3操作MySQL數據庫288
8.3操作MongoDB數據庫290
第9章網絡應用開發293
9.1計算機網絡基礎知識293
9.2Socket編程295
9.2.1UDP編程296
9.2.2TCP編程298
9.2.3網絡嗅探器300
9.2.4多進程端口掃描器302
9.2.5代理服務器端口映射功能的實現305
9.2.6自己編寫FTP通信軟件308
9.3域名解析與網頁爬蟲313
9.3.1網頁內容讀取與域名分析313
9.3.2網頁爬蟲315
9.3.3scrapy框架316
9.3.4BeautifulSoup4318
9.4網站開發323
9.4.1使用IIS運行Python CGI程序323
9.4.2Python在ASP.NET中的應用325
9.4.3Flask框架簡單應用327
9.4.4django框架簡單應用328
第10章多綫程與多進程333
10.1多綫程編程334
10.1.1綫程創建與管理336
10.1.2綫程同步技術339
10.2多進程編程346
10.2.1進程創建與管理347
10.2.2進程間數據交換347
10.2.3進程同步技術350
第11章大數據處理351
11.1大數據簡介351
11.2MapReduce框架352
11.3Spark應用開發356
第12章圖形編程與圖像處理361
12.1圖形編程361
12.1.1繪製三維圖形361
12.1.2繪製三次貝塞爾麯綫364
12.1.3紋理映射365
12.1.4響應鍵盤事件368
12.1.5光照模型369
12.2圖像處理372
12.2.1pillow模塊基本用法372
12.2.2計算橢圓中心375
12.2.3動態生成比例分配圖376
12.2.4生成驗證碼圖片377
12.2.5gif動態圖像分離與生成379
12.2.6材質貼圖380
12.2.7圖像融閤381
12.2.8棋盤紋理生成383
第13章數據分析與科學計算可視化384
13.1擴展庫numpy簡介384
13.2科學計算擴展庫scipy393
13.2.1數學、物理常用常數與單位模塊constants394
13.2.2特殊函數模塊special395
13.2.3信號處理模塊signal395
13.2.4圖像處理模塊ndimage397
13.3擴展庫pandas簡介401
13.4統計分析標準庫statistics用法簡介405
13.5matplotlib407
13.5.1繪製正弦麯綫408
13.5.2繪製散點圖408
13.5.3繪製餅狀圖410
13.5.4繪製帶有中文標簽和圖例的圖410
13.5.5繪製圖例標簽中帶有公式的圖411
13.5.6使用pyplot繪製,多個圖形單獨顯示412
13.5.7繪製三維參數麯綫413
13.5.8繪製三維圖形414
13.5.9使用指令繪製自定義圖形416
13.5.10在tkinter中使用matplotlib417
13.5.11使用matplotlib提供的組件實現交互式圖形顯示419
13.5.12根據實時數據動態更新圖形421
13.5.13使用Slider組件調整麯綫參數422
第14章密碼學編程425
14.1經典密碼算法425
14.1.1愷撒密碼算法425
14.1.2維吉尼亞密碼427
14.1.3換位密碼算法428
14.2安全哈希算法429
14.3對稱密鑰密碼算法DES和AES432
14.4非對稱密鑰密碼算法RSA與數字簽名算法DSA433
14.4.1RSA433
14.4.2DSA435
第15章tkinter編程精彩案例436
15.1用戶登錄界麵436
15.2選擇類組件應用438
15.3簡單文本編輯器441
15.4簡單畫圖程序445
15.5電子時鍾449
15.6簡單動畫451
15.7多窗口編程454
15.8屏幕任意區域截圖456
15.9音樂播放器458
15.10遠程桌麵監控係統462
第16章課堂教學管理係統設計與實現466
16.1功能簡介466
16.1.1教師端功能466
16.1.2學生端功能467
16.2數據庫設計468
16.3係統總框架與通用功能設計469
16.4數據導入功能473
16.4.1學生名單導入473
16.4.2題庫導入473
16.5點名與加分功能475
16.5.1在綫點名475
16.5.2離綫點名與加分477
16.6隨機提問功能480
16.7在綫收作業功能482
16.7.1學生端482
16.7.2教師端483
16.8在綫自測與在綫考試功能485
16.8.1學生端486
16.8.2教師端488
16.9信息查看功能490
16.10數據導齣功能492
16.11其他輔助功能493
16.11.1防作弊功能493
16.11.2服務器自動發現功能493
16.11.3Word版試捲生成功能494
結束語496
附錄A本書中例題清單497
附錄B本書中插圖清單503
附錄C本書中錶格清單507
附錄D本書中拓展知識摘要清單508
參考文獻513
第3章程序控製結構與函數設計
3.1選 擇 結 構
生活中處處充滿瞭選擇: 如果周末不下雨我就約朋友去爬山,否則就去教學樓大廳裏打太極拳;如果某個同學平時學習很認真但是期末考試前確實因為臨時有事耽誤瞭復習而沒有考好,隻要差得不太多我也一樣給打及格;去市場買菜的時候比較一下,哪傢的菜又好又便宜就買哪傢的;諸如此類,我們時刻都在根據實際條件做齣這樣或那樣的選擇。編寫程序也是如此,當某個條件得到滿足時就去做特定的事情,否則就做另一件事情,這就是選擇結構。
3.1.1條件錶達式
在選擇結構和循環結構中,都要根據條件錶達式的值來確定下一步的執行流程。條件錶達式的值隻要不是False、0(或0.0、0j等)、空值None、空列錶、空元組、空集閤、空字典、空字符串、空range對象或其他空迭代對象,Python解釋器均認為與True等價。從這個意義上來講,所有的Python閤法錶達式都可以作為條件錶達式,包括含有函數調用的錶達式。例如: >>> if 3:#使用整數作為條件錶達式
print(5)
5
>>> a=[1, 2, 3]
>>> if a:#使用列錶作為條件錶達式
print(a)
[1, 2, 3]
>>> a=[]
>>> if a:
print(a)
else:
print('empty')
empty
>>> i=s=0
>>> while i <= 10:#使用關係錶達式作為條件錶達式s += i
i += 1
>>> print(s)
55
>>> i=s=0
>>> while True:#使用常量True作為條件錶達式
s += i
i += 1
if i>10:#符閤特定條件時使用break語句退齣循環
break
>>> print(s)
55
>>> s=0
>>> for i in range(0, 11, 1):#遍曆序列元素
s += i
>>> print(s)
55[1]〖2〗Python可以這樣學[1]第3章程序控製結構與函數設計〖2〗關於錶達式和運算符的詳細內容在1.3.3節中已有介紹,這裏不再贅述,隻重點介紹一下比較特殊的幾個運算符。首先是關係運算符,與很多語言不同的是,在Python中的關係運算符可以連續使用,例如:>>> print(1<2<3)
True
>>> print(1<2>3)
False
>>> print(1<3>2)
True在Python中,條件錶達式中不允許使用賦值運算符“=”,避免瞭其他語言中誤將關係運算符“==”寫作賦值運算符“=”帶來的麻煩,例如,下麵的代碼在條件錶達式中使用賦值運算符“=”將拋齣異常,提示語法錯誤。>>> if a=3:#條件錶達式中不允許使用賦值運算符
SyntaxError: invalid syntax
>>> if(a=3)and(b=4):
SyntaxError: invalid syntax比較特殊的運算符還有邏輯運算符and和or,這兩個運算符具有短路求值或惰性求值的特點,簡單地說,就是隻計算必須計算的錶達式的值。以and為例,對於錶達式“錶達式1 and 錶達式2”而言,如果“錶達式1”的值為False或其他等價值時,不論“錶達式2”的值是什麼,整個錶達式的值都是False,此時“錶達式2”的值無論是什麼都不影響整個錶達式的值,因此將不會被計算,從而減少不必要的計算和判斷。另外,Python中的邏輯運算符在某些方麵和其他語言也有所不同,例如: >>> 3 and 5
5
>>> 3 or 5
3
>>> 0 and 5
0
>>> 0 or 5
5
>>> not 3
False
>>> not 0
True下麵的函數使用指定的分隔符把多個字符串連接成一個字符串,如果用戶沒有指定分隔符則使用逗號。>>> def Join(chList, sep=None):
return(sep or ',').join(chList)#注意:參數sep不是字符串時會拋齣異常
>>> chTest=['1', '2', '3', '4', '5']
>>> Join(chTest)
'1,2,3,4,5'
>>> Join(chTest, ':')
'1:2:3:4:5'
>>> Join(chTest, ' ')
'1 2 3 4 5'當然,也可以把上麵的函數直接定義為下麵帶有默認值參數的形式: >>> def Join(chList, sep=','):
return sep.join(chList)小技巧: 在設計包含多個條件的條件錶達式時,如果能夠大概預測不同條件失敗的概率,並將多個條件根據and和or運算符的短路求值特性來組織順序,可以大幅度提高程序運行效率,減少不必要的計算,這也屬於代碼優化的內容。
拓展知識: 邏輯運算符與常見電路連接方式的相似之處。大傢應該都學過高中物理,還記得並聯電路、串聯電路、短路這樣的概念嗎?可以做個簡單類比,or運算符類似 Python可以這樣學 下載 mobi epub pdf txt 電子書 格式
Python可以這樣學 下載 mobi pdf epub txt 電子書 格式 2024
Python可以這樣學 下載 mobi epub pdf 電子書很不錯的書啊
評分很不錯的書啊
評分一下子買瞭好幾本還沒有看!!!!!!!!!
評分很急積極攻擊力雞雞嘰嘰嘰嘰急急急李麗麗急急急
評分挺好的,送貨很快,書是正版的。希望可以幫助我學到知識,嗯嗯,不錯,信賴京東。五星好評。
評分東西挺好的,主要是物流比較快,滿意!
評分介紹說很幽默,但我還沒有看到。
評分書包裝的不錯,就是發票太難找瞭
評分包裝完好,還沒看,買瞭好多。。。
Python可以這樣學 mobi epub pdf txt 電子書 格式下載 2024