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