關(guān)于我們
書單推薦
新書推薦
|
Python可以這樣學(xué)
全書共分16章,對Python內(nèi)部工作原理進行了一定深度的剖析,99%以上的案例代碼使用Python 3.5.1實現(xiàn),也適用于Python 3.4.x(除少數(shù)幾個新特性之外)和*版本Python 3.5.2以及Python 3.6.0,極個別案例使用Python 2.7.11實現(xiàn)(同樣適用于其他版本Python 2.7.x,包括*的Python2.7.12),適當介紹了Python代碼優(yōu)化、系統(tǒng)編程和安全編程的有關(guān)知識,滿足不同層次讀者的需要。另外,書中通過小提示、小技巧、注意拓展知識等形式介紹了更多的內(nèi)容,全部內(nèi)容遠比章節(jié)目錄所顯示的要多,需要認真閱讀才能真正領(lǐng)會其中的奧妙。本書適合作為Python程序員的開發(fā)指南,也可以作為高等院校計算機專業(yè)、軟件工程專業(yè)等專業(yè)的Python教材,還可以作為Python愛好者的指導(dǎo)用書。
信息量大、案例豐富、實用性強。全書包含近200個案例和上千段代碼,涉及Python基本語法和數(shù)據(jù)類型,以及GUI、網(wǎng)絡(luò)應(yīng)用、數(shù)據(jù)庫、密碼學(xué)、科學(xué)計算與可視化、大數(shù)據(jù)、圖形圖像處理等多個領(lǐng)域的開發(fā),書中一些代碼進行簡單拼湊就可以滿足實際工作中需要的很多功能。深度與廣度兼顧。剖析Python編程模式,通過小提示、小技巧、注意、拓展知識等形式適當介紹標準庫的工作原理、內(nèi)置函數(shù)的高級用法以及代碼優(yōu)化和安全編程知識,同時還補充了很多擴展庫的小應(yīng)用,滿足不同層次讀者需要。語言輕松愉快,寓教于樂。以Python知識和應(yīng)用為主線,偶爾穿插一點太極拳論、道德經(jīng)、易經(jīng)、古詩詞和其他一些文學(xué)作品中的名言名句和小故事,部分題目還給出了非常幽默的答案。注釋量大。書中幾乎每段重要代碼都配有相關(guān)的注釋,讓讀者能夠在*短時間內(nèi)理解代碼的編寫思路和要點,大幅度縮短閱讀和學(xué)習(xí)時間。
Python并不是一門新語言,它由Guido van Rossum于1989年年底開始設(shè)計,并于1991年推出第一個公開發(fā)行版本,比Java早4年。Python推出不久就迅速得到各行業(yè)人士的青睞,經(jīng)過20多年的發(fā)展,已經(jīng)滲透到統(tǒng)計分析、移動終端開發(fā)、科學(xué)計算可視化、系統(tǒng)安全、逆向工程、軟件測試與軟件分析、圖形圖像處理、人工智能、機器學(xué)習(xí)、游戲設(shè)計與策劃、網(wǎng)站開發(fā)、數(shù)據(jù)爬取與大數(shù)據(jù)處理、密碼學(xué)、系統(tǒng)運維、音樂編程、影視特效制作、計算機輔助教育、醫(yī)藥輔助設(shè)計、天文信息處理、化學(xué)、生物信息處理、神經(jīng)科學(xué)與心理學(xué)、自然語言處理、電子電路設(shè)計、電子取證、樹莓派等幾乎所有專業(yè)和領(lǐng)域,在黑客領(lǐng)域更是多年來一直擁有霸主地位。作為一個非常不完整列表,這里給出幾個Python應(yīng)用案例: 著名搜索引擎Google的核心代碼使用Python實現(xiàn),迪士尼公司的動畫制作與生成采用Python實現(xiàn),大部分UNIX和Linux操作系統(tǒng)都內(nèi)建了Python環(huán)境支持,豆瓣網(wǎng)使用Python作為主體開發(fā)語言進行網(wǎng)站架構(gòu)和有關(guān)應(yīng)用的設(shè)計與開發(fā),網(wǎng)易大量網(wǎng)絡(luò)游戲的服務(wù)器端代碼超過70%采用Python進行設(shè)計與開發(fā),易度的PaaA企業(yè)應(yīng)用云端開發(fā)平臺和百度云計算平臺BAE也都大量采用了Python語言,eBay已經(jīng)使用Python超過15年以上(在eBay官方宣布支持Python之前就已經(jīng)有程序員在使用了),美國宇航局使用Python實現(xiàn)了CAD/CAE/PDM庫及模型管理系統(tǒng),微軟集成開發(fā)環(huán)境Visual Studio 2015開始默認支持Python語言而不需要像之前的版本一樣再單獨安裝PTVS和IronPython,開源ERP系統(tǒng)Odoo完全采用Python語言開發(fā),樹莓派使用Python作為官方編程語言,引力波數(shù)據(jù)是用Python進行處理和分析的,YouTube、美國銀行等也在大量使用Python進行開發(fā),類似的案例數(shù)不勝數(shù)。早在多年前Python就已經(jīng)成為卡耐基梅隆大學(xué)、麻省理工學(xué)院、加州大學(xué)伯克利分校、哈佛大學(xué)、多倫多大學(xué)等國外很多大學(xué)計算機專業(yè)或非計算機專業(yè)的程序設(shè)計入門教學(xué)語言,近幾年來國內(nèi)也有不少學(xué)校的多個專業(yè)陸續(xù)開設(shè)了Python程序設(shè)計課程。Python語言連續(xù)多年在TIOBE網(wǎng)站的編程語言排行榜上排名七八位,2011年1月Python被TIOBE網(wǎng)站評為2010年年度語言;在2014年12月份IEEE Spectrum推出的編程語言排行榜中,Python取得了第5位的好名次;2015年12月份TIOBE編程語言排行榜上Python躍居第4位,僅次于Java、C和C ,已經(jīng)成為腳本語言的標準;Top developer Languages of 2015更是把Python排到了第3位。Python是一門免費、開源的跨平臺高級動態(tài)編程語言,支持命令式編程、函數(shù)式編程,完全支持面向?qū)ο蟪绦蛟O(shè)計,擁有大量功能強大的內(nèi)置對象、標準庫、涉及各行業(yè)領(lǐng)域[1]〖2〗Python可以這樣學(xué)[1]前言〖2〗的擴展庫以及眾多狂熱的支持者,使得各領(lǐng)域的工程師、科研人員、策劃人員甚至管理人員能夠快速實現(xiàn)和驗證自己的思路、創(chuàng)意或者推測。在有些編程語言中需要編寫大量代碼才能實現(xiàn)的功能,在Python中直接調(diào)用內(nèi)置函數(shù)或標準庫方法即可實現(xiàn),大幅度簡化了代碼的編寫和維護。Python用戶只需要把主要精力放在業(yè)務(wù)邏輯的設(shè)計與實現(xiàn)上,在開發(fā)速度和運行效率之間達到了完美的平衡,其精妙之處令人擊節(jié)贊嘆。如何學(xué)習(xí)Python要想改變世界,首先要改變自己的世界。要想學(xué)好Python,首先要從內(nèi)心認識到Python的強大與美,樹立起學(xué)好、用好Python的信念并堅持不懈的努力,然后才有可能攀登Python高手之巔。很多人從內(nèi)心很恐懼Python,曾經(jīng)有不少人問我: Python功能那么強大,肯定很難學(xué)吧?其實,從編程語言發(fā)展史來看,人類語言和機器語言之間的鴻溝越來越小,人機交互越來越方便,越高級的編程語言越接近人類自然語言,越容易學(xué)習(xí)、掌握和運用,所以請不要有絲毫的恐懼和猶豫,放手去學(xué)便是。以我個人20年的經(jīng)驗,不管學(xué)習(xí)和使用哪種編程語言,大概都需要經(jīng)歷4個階段: 第一階段,能看懂和調(diào)試別人的代碼;第二階段,能在別人的代碼基礎(chǔ)上進行適當改寫;第三階段,能把多段已有的代碼拼湊起來實現(xiàn)自己需要的功能;第四階段,自己動手編寫代碼實現(xiàn)特定功能需求。一般而言,如果每天堅持3個小時學(xué)習(xí)Python,兩周左右應(yīng)該就能入門,3個月后就可以展示出不錯的成果。當然,隨著學(xué)習(xí)和開發(fā)時間越來越長,功力會越來越深厚,能夠掌控的代碼行數(shù)(LOC)會越來越多,能夠控制的業(yè)務(wù)邏輯越來越復(fù)雜。毫無疑問,Python是一門快樂、優(yōu)雅的語言,上手非常容易,稍加接觸就會喜歡上Python并能夠在短時間內(nèi)寫出幾個小程序。與C語言系列和Java等語言相比,Python大幅度降低了學(xué)習(xí)與使用的難度。Python易學(xué)易用,語法簡潔清晰,代碼可讀性強,編程模式非常符合人類思維方式和習(xí)慣。盡管如此,但這并不代表可以毫不費力地學(xué)會和熟練運用Python,在學(xué)習(xí)Python的路上沒有秘籍,也沒有哈利波特魔法杖,唯一的捷徑就是勤學(xué)苦練。多看。讀書破萬卷,下筆如有神。學(xué)習(xí)Python也是這樣,不僅要多看書,還要看很多遍。很多知識點是互相關(guān)聯(lián)的,單獨一個知識點也無法實現(xiàn)稍微復(fù)雜一點的功能,書中很多案例代碼用到了后面章節(jié)的知識點,而后面章節(jié)的案例代碼又用到了前面章節(jié)的內(nèi)容,這實在是無法避免的一件事。因此,不能奢望看一遍就能熟悉和掌握書中的內(nèi)容,更不能奢望只看一本書就能學(xué)會Python的全部知識。以我個人而言,除了Python官方幫助文檔和一些社區(qū)的資料之外,已經(jīng)閱讀了超過25本Python方面的書,并且還在不斷地購買和閱讀別人編寫的Python書籍來提高自己對Python的理解。一書一茶一下午,這樣平淡的快樂或許有人難以體會,于我卻是樂此不疲。多練。太極拳論曰由招熟而漸悟懂勁,由懂勁而階及神明,然非用力之久,不能豁然貫通焉。陸游的教子詩《冬夜讀書示子聿》也認為紙上得來終覺淺,絕知此事要躬行。掌握了正確的方法以后,多練是唯一的捷徑。一定要動手編寫和調(diào)試書上的代碼,踏踏實實把基礎(chǔ)掌握好再有針對性地學(xué)習(xí)自己需要的擴展庫,切忌只看不練。很多人眼高手低,一看就會,一編就錯,根本原因就是練得太少了。子曰學(xué)而時習(xí)之,也是這個道理,充分說明練習(xí)的重要性。一層功夫一層天。欲窮千里目,更上一層樓。多練,可以說是攀登Python高手之巔最重要的途徑。多想。學(xué)而不思則罔,思而不學(xué)則殆。一味地看書和埋頭苦練是不行的,還要多想、多總結(jié)、多整理,爭取把學(xué)到的知識和技術(shù)徹底理解。理解得越多,需要記憶的就越少。多交流。獨學(xué)而無友,則孤陋而寡聞。除了重視基礎(chǔ)知識的學(xué)習(xí)和練習(xí)之外,還要多交流。除了Python官方網(wǎng)站和在線幫助文檔之外,經(jīng)常瀏覽一些Python論壇并閱讀和調(diào)試其中的優(yōu)秀代碼,汲取他人代碼中的精華。子曰三人行必有我?guī)熝桑瑩衿渖普叨鴱闹,也是相同的道理。遇到不懂的問題也可以去一些論壇發(fā)帖提問,或者請教身邊的朋友和老師,但是提問之前一定要充分思考,有針對性地請教別人,經(jīng)過充分思考以后再請教別人不僅是對別人的尊重,也能讓自己有更大的收獲。百思不得其解的問題經(jīng)過高手一點撥才能有茅塞頓開和恍然大悟的效果,這樣的交流更加有效,不浪費彼此的時間。曾經(jīng)有學(xué)生拿一個十幾頁代碼的程序來問我問題,我問哪里看不懂,他說整個程序都看不懂,想讓我?guī)兔纯慈缓蟀颜a給他講講。正如大家所想的一樣,我直接拒絕了他。也曾經(jīng)有讀者問我怎么用Python做圖像處理?真的很抱歉,這樣沒營養(yǎng)的問題我實在沒法回答。俗話說,心急吃不了熱豆腐?刂坪脤W(xué)習(xí)的進度和節(jié)奏才能獲得最好的效果,每天學(xué)習(xí)一點、進步一點、提高一點,時間久了會突然有一天發(fā)現(xiàn)自己已經(jīng)成為Python高手,很有零存整取的感覺。欲速則不達,把下面這個圖送給各位讀者朋友共勉。
學(xué)拳容易改拳難。不是所有慢悠悠的拳都是太極拳,也不是所有用Python語言寫出來的代碼都足夠Pythonic。很多人認為編程語言都是一通百通,無非是語法不一樣而已,認為沒吃過豬肉也見過豬跑,簡單看看語法就能立刻使用另外一種語言編寫程序。這樣的想法確實有一定的道理,但實際上就算天天看豬跑也沒法知道豬肉是啥味道,按照C語言的思路用Python寫出來的代碼絕對不是好的Python程序,會顯得不倫不類,代碼會非常啰唆,不得Python精髓,完全不能發(fā)揮Python的優(yōu)勢。應(yīng)該在熟悉Python編程模式的基礎(chǔ)上,盡量嘗試從最自然、最簡潔的角度出發(fā)去思考和解決問題,這樣才能寫出更加優(yōu)雅、更加Pythonic的代碼,像詩一樣美。汝果欲學(xué)詩,功夫在詩外。沒有豐富的人生閱歷很難寫出優(yōu)美并且有內(nèi)涵、有靈魂的詩,學(xué)習(xí)Python也是這樣。歸根到底,Python是用來表達我們思想、算法或幫我們解決某個問題的語言和工具而已,idea才是一個程序的靈魂。切不可把全部精力放到Python語言本身的學(xué)習(xí)上,而是要把主要精力放到自己的專業(yè)知識學(xué)習(xí)上,最終再用Python把自己的思想或算法準確地表達出來。本書從不同領(lǐng)域選取了一些有代表性的案例,同時還結(jié)合自己多年的項目開發(fā)和教學(xué)經(jīng)驗整理和設(shè)計了一些案例,希望能夠起到拋磚引玉的作用。內(nèi)容組織與閱讀建議對于Python程序員來說,熟練運用優(yōu)秀、成熟的擴展庫可以快速實現(xiàn)業(yè)務(wù)邏輯和創(chuàng)意,而Python語言基礎(chǔ)知識和基本數(shù)據(jù)結(jié)構(gòu)的熟練掌握則是理解和運用其他擴展庫的必要條件。并且,在實際開發(fā)中建議優(yōu)先使用Python內(nèi)置對象和標準庫對象實現(xiàn)預(yù)定功能,這樣可以獲得更高的執(zhí)行效率。本書前7章使用大量篇幅介紹Python編程基礎(chǔ)知識,通過大量案例演示Python語言的精妙與強大。然后從第8章開始介紹大量標準庫和擴展庫在GUI編程、網(wǎng)絡(luò)編程、數(shù)據(jù)庫編程、大數(shù)據(jù)處理、多線程與多進程編程、系統(tǒng)運維、圖形圖像編程、科學(xué)計算可視化、密碼學(xué)編程、移動終端編程等多個領(lǐng)域的應(yīng)用。最后一章通過一個完整的系統(tǒng)演示了Python在實際系統(tǒng)開發(fā)中的應(yīng)用。全書共16章,讀者在熟練掌握前7章之后,可以結(jié)合自己的專業(yè)領(lǐng)域或興趣愛好,在其他章節(jié)中有選擇地進行閱讀。第1章Python基礎(chǔ)。介紹如何選擇Python版本和開發(fā)環(huán)境,Python對象模型,數(shù)字、字符串等基本數(shù)據(jù)類型,運算符與表達式,常用內(nèi)置函數(shù),基本輸入輸出函數(shù),擴展庫管理與使用。第2章Python序列。講解序列常用方法和基本操作,列表基本操作與常用方法,切片操作,列表推導(dǎo)式,元組與生成器推導(dǎo)式,序列解包,字典、集合基本操作與常用方法,字典推導(dǎo)式與集合推導(dǎo)式。第3章程序控制結(jié)構(gòu)與函數(shù)設(shè)計。講解Python選擇結(jié)構(gòu)、for循環(huán)與while循環(huán),帶else子句的循環(huán)結(jié)構(gòu),break與continue語句,循環(huán)代碼優(yōu)化,函數(shù)定義與使用,關(guān)鍵參數(shù)、默認值參數(shù)、長度可變參數(shù)等不同參數(shù)類型,全局變量與局部變量,參數(shù)傳遞時的序列解包,return語句,lambda表達式以及map()、reduce()、filter()、生成器與可調(diào)用對象。第4章面向?qū)ο蟪绦蛟O(shè)計。講解類的定義與使用,self與cls參數(shù),類成員與實例成員,私有成員與公有成員,繼承與派生,屬性,特殊方法與運算符重載等內(nèi)容,以及自定義類實現(xiàn)數(shù)組、矩陣、隊列、棧、二叉樹、有向圖、集合等數(shù)據(jù)結(jié)構(gòu)。第5章字符串與正則表達式。講解字符串編碼格式,字符串格式化、替換、分割、連接、查找、排版等基本操作,正則表達式語法、正則表達式對象、子模式與子模式擴展語法、match對象,以及Python正則表達式模塊re的應(yīng)用。第6章文件與文件夾操作。講解文件操作基本知識,Python文件對象,文本文件讀寫操作,二進制文件讀寫與對象序列化,文件復(fù)制、移動、重命名,文件類型檢測,文件完整性檢查,壓縮與解壓縮,文件夾大小統(tǒng)計,文件夾增量備份,刪除指定類型的文件,以及word、excel、zip、apk、rar等常見文件類型的操作。第7章異常處理結(jié)構(gòu)、代碼測試與調(diào)試。講解Python異常類層次結(jié)構(gòu)與自定義異常類,多種不同形式的異常處理結(jié)構(gòu),使用IDLE和pdb模塊調(diào)試Python程序,Python單元測試相關(guān)知識。第8章數(shù)據(jù)庫應(yīng)用開發(fā)。介紹SQLite數(shù)據(jù)庫及其相關(guān)概念,Connection對象、Cursor對象、Row對象,使用Python操作Access、MS SQL Server、MySQL等關(guān)系型數(shù)據(jù)庫以及使用Python操作NoSQL數(shù)據(jù)庫MongoDB。第9章網(wǎng)絡(luò)應(yīng)用開發(fā)。講解計算機網(wǎng)絡(luò)基礎(chǔ)知識,TCP、UDP協(xié)議編程,網(wǎng)絡(luò)嗅探器與端口掃描器設(shè)計,域名解析與網(wǎng)頁爬蟲設(shè)計原理,代理服務(wù)器與FTP軟件原理與實現(xiàn),使用Python編寫CGI程序,使用Flask和django框架開發(fā)Web應(yīng)用,以及使用C#與Python混合開發(fā)Web應(yīng)用。第10章多線程與多進程。講解Python標準庫threading和multiprocessing在多線程編程與多進程編程中的應(yīng)用,以及多線程與多進程之間的數(shù)據(jù)共享與同步控制。第11章大數(shù)據(jù)處理。介紹大數(shù)據(jù)處理框架MapReduce、Hadoop和Spark基本概念,重點介紹MapReduce和Spark應(yīng)用。第12章圖形編程與圖像處理。講解擴展庫PyOpenGL在計算機圖形學(xué)編程中的應(yīng)用,擴展庫pillow在圖像編程中的應(yīng)用。第13章數(shù)據(jù)分析與科學(xué)計算可視化。講解擴展庫numpy、scipy、matplotlib在科學(xué)計算與可視化領(lǐng)域的應(yīng)用,以及標準庫statistics與擴展庫pandas在統(tǒng)計與分析、數(shù)據(jù)處理中的應(yīng)用。第14章密碼學(xué)編程。介紹愷撒密碼、維吉尼亞密碼等經(jīng)典密碼算法的Python實現(xiàn),以pycrypto、rsa、hashlib等模塊為主講解安全哈希算法、對稱密鑰密碼算法DES與AES以及非對稱密鑰密碼算法RSA與DSA的應(yīng)用。第15章tkinter編程精彩案例。講解如何使用Python標準庫tkinter進行GUI編程,通過大量實際案例演示基本組件的用法,包括用戶登錄界面設(shè)計、選擇類組件應(yīng)用、簡單文本編輯器、畫圖程序設(shè)計與實現(xiàn)、電子時鐘、簡單動畫、屏幕任意區(qū)域截圖、音樂播放器、遠程桌面監(jiān)控程序等。第16章課堂教學(xué)管理系統(tǒng)設(shè)計與實現(xiàn)。通過一個綜合案例來演示前面章節(jié)知識的應(yīng)用,提供了學(xué)生名單和題庫的導(dǎo)入、在線點名、在線提問、在線答疑、在線收作業(yè)、在線自測與考試、數(shù)據(jù)導(dǎo)出、防作弊與服務(wù)器自動發(fā)現(xiàn)、信息匯總、試卷生成等功能。本書的最大特點是信息量大、知識點緊湊、案例豐富、注釋量大、實用性強,把書中一些代碼進行簡單拼湊就可以滿足實際工作中需要的很多功能。全書近200個涉及不同行業(yè)領(lǐng)域的實用案例和上千個代碼片段并且配有大量注釋以方便理解,沒有插入多余的程序輸出結(jié)果或軟件安裝截圖,只保留了必要的代碼運行結(jié)果或截圖以供讀者參考和對比,充分利用寶貴的篇幅來介紹和演示盡可能多的知識,絕對物超所值。本書作者具有16年程序設(shè)計教學(xué)經(jīng)驗,先后講授過匯編語言、C/C /C#、Java、PHP、Python等多門程序設(shè)計語言,并且編寫過大量的應(yīng)用程序,其中有幾套系統(tǒng)已投入使用多年并一直在使用。本書內(nèi)容結(jié)合了作者多年教學(xué)與開發(fā)過程中積累的許多經(jīng)驗和案例,并巧妙地糅合進了相應(yīng)的章節(jié)。本書對Python內(nèi)部工作原理進行了一定深度的剖析,書中99%以上的案例均使用Python 3.5.1實現(xiàn),這些代碼同樣也適用于Python 3.4.x(除少數(shù)幾個新特性之外,如矩陣運算符@)和最新版本Python 3.5.2以及馬上就要正式面世的Python 3.6.0,極個別案例使用Python 2.7.11實現(xiàn)(同樣適用于其他版本Python 2.7.x,包括最新的Python 2.7.12),并適當介紹了Python代碼優(yōu)化、系統(tǒng)編程和安全編程的有關(guān)知識,可以滿足不同層次讀者的需要。另外,書中通過小提示、小技巧、注意、拓展知識等形式介紹了更多的內(nèi)容,所以全部內(nèi)容遠比章節(jié)目錄所顯示的要多,需要認真閱讀才能真正領(lǐng)會其中的奧妙。配套資源本書提供所有案例源代碼,可以登錄清華大學(xué)出版社網(wǎng)站(www.tup.com.cn)下載,或加入本書讀者群(QQ群號為282819961)下載最新配套資源并與作者直接交流,作者微信號Python_dfg也隨時期待您的反饋和交流,當然也歡迎關(guān)注微信公眾號Python小屋及時閱讀作者寫的最新案例代碼。本書適用讀者本書可以作為(但不限于): 本科、?苹蜓芯可绦蛟O(shè)計課程教材。 Python培訓(xùn)用書。 具有一定Python基礎(chǔ)的讀者進階首選學(xué)習(xí)資料。 涉及Python開發(fā)的工程師、策劃人員、科研人員和管理人員閱讀書目。 打算利用業(yè)余時間學(xué)習(xí)一門快樂的程序設(shè)計語言并編寫幾個小程序來娛樂的讀者首選學(xué)習(xí)資料。 少數(shù)對編程具有濃厚興趣和天賦的中學(xué)生課外閱讀資料。感謝首先感謝父母的養(yǎng)育之恩,在當年那么艱苦的條件下還堅決支持我讀書,沒有讓我像其他同齡的孩子一樣輟學(xué)。感謝姐姐、姐夫多年來對我的愛護以及在老家對父母的照顧,感謝善良的弟弟、弟媳在老家對父母的照顧,正是有了你們,遠離家鄉(xiāng)的我才能安心工作。當然,最應(yīng)該感謝的是妻子和孩子對我這個技術(shù)狂人的理解,這些年來她們已經(jīng)習(xí)慣了正在吃飯的我突然想起個思路然后就跑到計算機前面去寫代碼了,習(xí)慣了我每個周末和假期都在教研室看書或?qū)懘a而不陪她們,也習(xí)慣了周末的中午和晚上做好飯以后再打電話讓我回家。為了表示對我的支持,她們還閱讀了本書定稿前的版本并發(fā)現(xiàn)了幾個錯別字。感謝每一位讀者,感謝您在茫茫書海中選擇了本書,衷心祝愿您能夠從本書中受益,學(xué)到真正需要的知識!同時也期待每一位讀者的熱心反饋,隨時歡迎您指出書中的不足!本書的出版獲2014年山東省普通高校應(yīng)用型人才培養(yǎng)專業(yè)發(fā)展支持計劃項目資助。我校專業(yè)共建合作伙伴浪潮優(yōu)派科技教育有限公司總裁邵長臣先生審閱了全書,并提出很多寶貴的意見,在此致以誠摯的謝意。本書在編寫出版過程中也得到清華大學(xué)出版社的大力支持和幫助,在此表示衷心的感謝。 董付國于山東煙臺2016年7月
董付國 副教授。自2000年參加工作以來,先后講授過匯編語言、C/C /C#、Java和Python等多門編程語言,以及計算機組成原理、計算機網(wǎng)絡(luò)、數(shù)據(jù)庫原理、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、計算機安全、網(wǎng)絡(luò)安全、計算機圖形學(xué)、數(shù)字圖像處理、游戲策劃等多門課程,出版《Python程序設(shè)計》、《Python程序設(shè)計基礎(chǔ)》、《Python程序設(shè)計(第2版)》系列教材,開發(fā)過多套涉及不同領(lǐng)域的管理系統(tǒng),在國內(nèi)外高水平學(xué)術(shù)期刊與會議上發(fā)表論文40余篇,其中近30篇被EI檢索。學(xué)習(xí)工作之余*的愛好是打太極拳。
目錄 第1章Python基礎(chǔ)1 1.1Python是一種什么樣的語言1 1.2Python開發(fā)環(huán)境2 1.2.1百家爭鳴的繁榮景象2 1.2.2IDLE簡單使用6 1.3變量、運算符與表達式9 1.3.1Python變量與內(nèi)置數(shù)據(jù)類型9 1.3.2常用內(nèi)置函數(shù)15 1.3.3運算符與表達式21 1.3.4人機對話基本接口25 1.4模塊安裝與使用28 1.4.1安裝Python擴展庫28 1.4.2模塊導(dǎo)入與使用30 1.4.3編寫自己的模塊和包32 第2章Python序列35 2.1列表與列表推導(dǎo)式36 2.1.1列表創(chuàng)建與刪除36 2.1.2列表常用方法38 2.1.3列表推導(dǎo)式46 2.1.4切片50 2.2元組與生成器推導(dǎo)式54 2.2.1元組54 2.2.2生成器推導(dǎo)式55 2.3字典57 2.3.1字典創(chuàng)建和元素添加、修改與刪除57 2.3.2訪問字典對象的數(shù)據(jù)59 2.3.3案例精選61 2.4集合63[1]〖2〗Python可以這樣學(xué)[1]目錄〖2〗2.4.1集合基礎(chǔ)知識63 2.4.2集合操作與運算64 2.4.3案例精選67 2.5序列解包69 第3章程序控制結(jié)構(gòu)與函數(shù)設(shè)計71 3.1選擇結(jié)構(gòu)71 3.1.1條件表達式71 3.1.2選擇結(jié)構(gòu)的幾種形式73 3.1.3案例精選79 3.2循環(huán)結(jié)構(gòu)82 3.2.1for循環(huán)與while循環(huán)的基本語法82 3.2.2break與continue語句83 3.2.3循環(huán)代碼優(yōu)化技巧84 3.2.4案例精選86 3.3函數(shù)設(shè)計與使用90 3.3.1基本語法91 3.3.2函數(shù)參數(shù)不得不說的幾件事94 3.3.3變量作用域99 3.3.4lambda表達式102 3.3.5案例精選104 第4章面向?qū)ο蟪绦蛟O(shè)計122 4.1基礎(chǔ)知識122 4.1.1類的定義與使用122 4.1.2私有成員與公有成員123 4.1.3數(shù)據(jù)成員125 4.1.4方法126 4.1.5屬性129 4.1.6繼承131 4.1.7特殊方法與運算符重載134 4.2案例精選135 4.2.1自定義數(shù)組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章異常處理結(jié)構(gòu)、代碼測試與調(diào)試252 7.1異常處理結(jié)構(gòu)252 7.1.1異常是什么252 7.1.2Python內(nèi)置異常類層次結(jié)構(gòu)254 7.1.3常見異常處理結(jié)構(gòu)形式255 7.2代碼測試262 7.2.1doctest263 7.2.2單元測試264 7.3代碼調(diào)試270 7.3.1使用IDLE調(diào)試270 7.3.2使用pdb調(diào)試273 階段性寄語278 第8章數(shù)據(jù)庫應(yīng)用開發(fā)279 8.1使用Python操作SQLite數(shù)據(jù)庫279 8.1.1Connection對象280 8.1.2Cursor對象281 8.1.3Row對象284 8.2使用Python操作其他關(guān)系型數(shù)據(jù)庫285 8.2.1操作Access數(shù)據(jù)庫285 8.2.2操作MS SQL Server數(shù)據(jù)庫286 8.2.3操作MySQL數(shù)據(jù)庫288 8.3操作MongoDB數(shù)據(jù)庫290 第9章網(wǎng)絡(luò)應(yīng)用開發(fā)293 9.1計算機網(wǎng)絡(luò)基礎(chǔ)知識293 9.2Socket編程295 9.2.1UDP編程296 9.2.2TCP編程298 9.2.3網(wǎng)絡(luò)嗅探器300 9.2.4多進程端口掃描器302 9.2.5代理服務(wù)器端口映射功能的實現(xiàn)305 9.2.6自己編寫FTP通信軟件308 9.3域名解析與網(wǎng)頁爬蟲313 9.3.1網(wǎng)頁內(nèi)容讀取與域名分析313 9.3.2網(wǎng)頁爬蟲315 9.3.3scrapy框架316 9.3.4BeautifulSoup4318 9.4網(wǎng)站開發(fā)323 9.4.1使用IIS運行Python CGI程序323 9.4.2Python在ASP.NET中的應(yīng)用325 9.4.3Flask框架簡單應(yīng)用327 9.4.4django框架簡單應(yīng)用328 第10章多線程與多進程333 10.1多線程編程334 10.1.1線程創(chuàng)建與管理336 10.1.2線程同步技術(shù)339 10.2多進程編程346 10.2.1進程創(chuàng)建與管理347 10.2.2進程間數(shù)據(jù)交換347 10.2.3進程同步技術(shù)350 第11章大數(shù)據(jù)處理351 11.1大數(shù)據(jù)簡介351 11.2MapReduce框架352 11.3Spark應(yīng)用開發(fā)356 第12章圖形編程與圖像處理361 12.1圖形編程361 12.1.1繪制三維圖形361 12.1.2繪制三次貝塞爾曲線364 12.1.3紋理映射365 12.1.4響應(yīng)鍵盤事件368 12.1.5光照模型369 12.2圖像處理372 12.2.1pillow模塊基本用法372 12.2.2計算橢圓中心375 12.2.3動態(tài)生成比例分配圖376 12.2.4生成驗證碼圖片377 12.2.5gif動態(tài)圖像分離與生成379 12.2.6材質(zhì)貼圖380 12.2.7圖像融合381 12.2.8棋盤紋理生成383 第13章數(shù)據(jù)分析與科學(xué)計算可視化384 13.1擴展庫numpy簡介384 13.2科學(xué)計算擴展庫scipy393 13.2.1數(shù)學(xué)、物理常用常數(shù)與單位模塊constants394 13.2.2特殊函數(shù)模塊special395 13.2.3信號處理模塊signal395 13.2.4圖像處理模塊ndimage397 13.3擴展庫pandas簡介401 13.4統(tǒng)計分析標準庫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繪制三維參數(shù)曲線413 13.5.8繪制三維圖形414 13.5.9使用指令繪制自定義圖形416 13.5.10在tkinter中使用matplotlib417 13.5.11使用matplotlib提供的組件實現(xiàn)交互式圖形顯示419 13.5.12根據(jù)實時數(shù)據(jù)動態(tài)更新圖形421 13.5.13使用Slider組件調(diào)整曲線參數(shù)422 第14章密碼學(xué)編程425 14.1經(jīng)典密碼算法425 14.1.1愷撒密碼算法425 14.1.2維吉尼亞密碼427 14.1.3換位密碼算法428 14.2安全哈希算法429 14.3對稱密鑰密碼算法DES和AES432 14.4非對稱密鑰密碼算法RSA與數(shù)字簽名算法DSA433 14.4.1RSA433 14.4.2DSA435 第15章tkinter編程精彩案例436 15.1用戶登錄界面436 15.2選擇類組件應(yīng)用438 15.3簡單文本編輯器441 15.4簡單畫圖程序445 15.5電子時鐘449 15.6簡單動畫451 15.7多窗口編程454 15.8屏幕任意區(qū)域截圖456 15.9音樂播放器458 15.10遠程桌面監(jiān)控系統(tǒng)462 第16章課堂教學(xué)管理系統(tǒng)設(shè)計與實現(xiàn)466 16.1功能簡介466 16.1.1教師端功能466 16.1.2學(xué)生端功能467 16.2數(shù)據(jù)庫設(shè)計468 16.3系統(tǒng)總框架與通用功能設(shè)計469 16.4數(shù)據(jù)導(dǎo)入功能473 16.4.1學(xué)生名單導(dǎo)入473 16.4.2題庫導(dǎo)入473 16.5點名與加分功能475 16.5.1在線點名475 16.5.2離線點名與加分477 16.6隨機提問功能480 16.7在線收作業(yè)功能482 16.7.1學(xué)生端482 16.7.2教師端483 16.8在線自測與在線考試功能485 16.8.1學(xué)生端486 16.8.2教師端488 16.9信息查看功能490 16.10數(shù)據(jù)導(dǎo)出功能492 16.11其他輔助功能493 16.11.1防作弊功能493 16.11.2服務(wù)器自動發(fā)現(xiàn)功能493 16.11.3Word版試卷生成功能494 結(jié)束語496 附錄A本書中例題清單497 附錄B本書中插圖清單503 附錄C本書中表格清單507 附錄D本書中拓展知識摘要清單508 參考文獻513
你還可能感興趣
我要評論
|