出版時(shí)間:2012-8 出版社:機(jī)械工業(yè)出版社 作者:(美)William F PunchRichard Enbody 頁(yè)數(shù):452 譯者:張敏
Tag標(biāo)簽:無(wú)
內(nèi)容概要
《Python入門經(jīng)典:以解決計(jì)算問題為導(dǎo)向的Python編程實(shí)踐》是一本系統(tǒng)而科學(xué)的Python入門教程,美國(guó)密歇根州立大學(xué)等多所美國(guó)知名高校采用其作為編程語(yǔ)言的入門教材,被奉為經(jīng)典。它不僅從計(jì)算機(jī)教學(xué)和計(jì)算機(jī)科學(xué)的角度講解了初學(xué)者如何才能更有效地去學(xué)習(xí)Python,而且特別強(qiáng)調(diào)用Python解決生活中的實(shí)際問題,精心組織了大量來源于生活中不同領(lǐng)域的與數(shù)值計(jì)算和數(shù)據(jù)處理相關(guān)的案例。通過本書,讀者不僅能系統(tǒng)掌握Python編程相關(guān)的知識(shí),而且還能掌握利用Python處理各種與數(shù)據(jù)相關(guān)的問題。本書分為五部分,第一部分介紹計(jì)算機(jī)設(shè)備的一般概念和一些計(jì)算機(jī)術(shù)語(yǔ);第二部分開始介紹編程的基本知識(shí),包括入門知識(shí)和控制語(yǔ)句,為后續(xù)內(nèi)容做鋪墊;第三部分講述數(shù)據(jù)結(jié)構(gòu)和函數(shù),包括字符串、列表和元組、字典和集合、文件、函數(shù)、算法和程序等進(jìn)階內(nèi)容,有助于讀者提升編程技能;第四部分重點(diǎn)介紹如何使用類定義數(shù)據(jù)結(jié)構(gòu)和算法、開發(fā)程序等,培養(yǎng)讀者運(yùn)用Python語(yǔ)言來實(shí)現(xiàn)基本的計(jì)算思想和策略的能力;第五部分主要介紹異常、測(cè)試和遞歸,旨在使讀者成為更好的程序員。
本書深入淺出,每一章節(jié)均給出了大量的實(shí)例、示范代碼和自測(cè)練習(xí),便于讀者理解和掌握相關(guān)知識(shí)。讀者通過學(xué)習(xí)本書,不僅能掌握Python語(yǔ)言的基本知識(shí),還能學(xué)習(xí)如何在實(shí)踐中運(yùn)用該語(yǔ)言解決問題。
《Python入門經(jīng)典:以解決計(jì)算問題為導(dǎo)向的Python編程實(shí)踐》不僅適合入門級(jí)的Python程序員系統(tǒng)學(xué)習(xí),也適合作為高等院校計(jì)算機(jī)和非計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)課程教材。本書的兩位作者潘曲、尹鮑德具有近30年的大學(xué)計(jì)算機(jī)教學(xué)與實(shí)踐經(jīng)驗(yàn)。
作者簡(jiǎn)介
作者:(美國(guó))潘曲(William F. Punch) (美國(guó))尹鮑德(Richard Enbody) 譯者:張敏 等 潘曲,William F.Punch,1989年獲得密歇根州立大學(xué)計(jì)算機(jī)科學(xué)博士學(xué)位,2006年至今擔(dān)任密歇根大學(xué)高性能計(jì)算中心(www.hpcc.msu.edu)的主任,具有30多年的計(jì)算機(jī)教學(xué)和實(shí)踐經(jīng)驗(yàn)。研究方向包括:基因算法和基因編程,涵蓋理論問題(并行GA/GP)和應(yīng)用問題(設(shè)計(jì)、布局和調(diào)度),以及數(shù)據(jù)挖掘等。在計(jì)算機(jī)方面有十多年豐富的教學(xué)經(jīng)驗(yàn),撰寫過多本計(jì)算機(jī)圖書,發(fā)表過上百篇關(guān)于計(jì)算機(jī)的論文。 尹鮑德,Richard Enbody,是密歇根州立大學(xué)計(jì)算機(jī)科學(xué)和工程系教授,具有30多年豐富的計(jì)算機(jī)教學(xué)經(jīng)驗(yàn),研究方向包括:計(jì)算機(jī)安全、計(jì)算機(jī)體系結(jié)構(gòu)、并行處理等,發(fā)表過50多篇關(guān)于計(jì)算機(jī)技術(shù)的論文。
書籍目錄
譯者序
前言
第一部分 關(guān)于計(jì)算機(jī)的思考
第0章 計(jì)算機(jī)科學(xué)研究
0.1 為什么要研究計(jì)算機(jī)科學(xué)
0.1.1 計(jì)算機(jī)科學(xué)的重要性
0.1.2 計(jì)算機(jī)“科學(xué)”
0.1.3 通過編程學(xué)習(xí)計(jì)算機(jī)科學(xué)
0.2 編程的困難和使命
0.2.1 困難1:同時(shí)做兩件事
0.2.2 困難2:什么是好程序
0.2.3 程序的使命
0.3 選擇一種計(jì)算機(jī)語(yǔ)言
0.3.1 各種計(jì)算機(jī)語(yǔ)言
0.3.2 為什么選Python
0.3.3 Python是最好的程序語(yǔ)言嗎
0.4 什么是計(jì)算
0.5 什么是計(jì)算機(jī)
0.5.1 自然界中的計(jì)算
0.5.2 人類制造的計(jì)算機(jī)
0.6 現(xiàn)代電子計(jì)算機(jī)
0.6.1 就是開關(guān)
0.6.2 晶體管
0.7 從更高層面來了解現(xiàn)代計(jì)算機(jī)
0.8 數(shù)據(jù)表示
0.8.1 二進(jìn)制數(shù)據(jù)
0.8.2 使用二進(jìn)制
0.8.3 局限性
0.8.4 字符表示
0.8.5 其他數(shù)據(jù)表示
0.8.6 數(shù)字代表什么
0.8.7 數(shù)據(jù)量
0.8.8 數(shù)據(jù)量有多大
0.9 后續(xù)章節(jié)概述
0.10 總結(jié)
第二部分 開始編程
第1章 入門
1.1 練習(xí),練習(xí),再練習(xí)
1.2 快速入門——計(jì)算圓周長(zhǎng)的程序
1.3 交互式會(huì)話
1.4 程序組成部分
1.4.1 模塊
1.4.2 表達(dá)式和語(yǔ)句
1.4.3 空白
1.4.4 注釋
1.4.5 Python 的特殊元素:標(biāo)記
1.4.6 對(duì)象命名
1.5 變量
1.6 對(duì)象和類型
1.6.1 數(shù)字
1.6.2 其他內(nèi)置類型
1.6.3 對(duì)象類型:非變量類型
1.6.4 創(chuàng)建新值
1.7 運(yùn)算符
1.7.1 整數(shù)運(yùn)算符
1.7.2 浮點(diǎn)運(yùn)算符
1.7.3 混合運(yùn)算符
1.7.4 運(yùn)算符順序和圓括號(hào)
1.7.5 增強(qiáng)的賦值運(yùn)算符:快捷方式
1.8 第一個(gè)模塊:math模塊
1.9 開發(fā)算法
1.10 總結(jié)
1.11 視覺場(chǎng)景:海龜繪圖
習(xí)題
……
第2章 控制語(yǔ)句
第3章 算法和程序開發(fā)
第三部分 組織:數(shù)據(jù)結(jié)構(gòu)和函數(shù)
第4章 字符串
第5章 函數(shù)快速入門
第6章 列表和元組
第7章 深入了解函數(shù)
第8章 字典和集合
第9章 文件
第10章 程序開發(fā)進(jìn)階
第四部分 類:自定義數(shù)據(jù)結(jié)構(gòu)和算法
第11章 類
第12章 類進(jìn)階
第13章 使用類開發(fā)程序
第五部分 成為更好的程序員
第14章 異常和異常處理
第15章 測(cè)試
第16章 遞歸:另一種控制機(jī)制
附錄
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 3.2算法特征 通過調(diào)用算法的方式,食譜(給出的第一個(gè)算法描述)能正常工作,但是從計(jì)算機(jī)科學(xué)的角度來看這還不夠。尤其是計(jì)算機(jī)科學(xué)家們感興趣的是什么是好算法。好的算法具有一些共同的特點(diǎn)。在開始研究這些特點(diǎn)前,要先澄清算法和程序之間的區(qū)別。 3.2.1算法和程序 算法和相關(guān)的程序關(guān)系緊密,有時(shí)容易發(fā)生混淆,尤其是在第一次學(xué)習(xí)編程時(shí)。它們之間是有區(qū)別的,用最簡(jiǎn)單的術(shù)語(yǔ)描述如下: 算法是對(duì)如何解決問題的描述。 程序是在特定類型的計(jì)算機(jī)上,用特定語(yǔ)言對(duì)算法的實(shí)現(xiàn)。 再次思考巧克力蛋糕和平方根的算法。蛋糕食譜遺漏了廚房的細(xì)節(jié)。例如,它并沒有指出在哪里可以找到碗來混合食物。此外,食譜也沒有告訴我們?nèi)绾卧O(shè)置烤箱溫度(旋轉(zhuǎn)調(diào)節(jié)盤或按按鈕)?而使用筆和紙進(jìn)行平方根計(jì)算,與使用計(jì)算機(jī)甚至算盤進(jìn)行平方根計(jì)算也有不同。在兩個(gè)例子中都缺少細(xì)節(jié),尤其是如何實(shí)現(xiàn)算法。廚師在他自己的廚房工作,食譜中缺少的細(xì)節(jié)并不造成困難,因?yàn)閺N師知道碗放在哪里,并且知道如何操作烤箱。同樣的,熟悉某種編程語(yǔ)言和操作系統(tǒng)的計(jì)算機(jī)程序員,在應(yīng)用算法時(shí)也知道如何處理這些細(xì)節(jié)。 將想要做什么和實(shí)際中如何實(shí)現(xiàn)區(qū)分開來,會(huì)帶來不少好處: 我們可以分析算法,將算法本身與算法如何實(shí)現(xiàn)區(qū)分開來。這種分析是在計(jì)算機(jī)學(xué)科中的“科學(xué)”。將算法與實(shí)現(xiàn)分開,使得我們能夠?qū)W⒂谒惴ǖ膶傩浴@?,算法分析能提出改進(jìn)建議,對(duì)所有實(shí)現(xiàn)都有所改進(jìn)。 我們能看到某種編程語(yǔ)言在多大的程度上將算法實(shí)現(xiàn)好。每一種語(yǔ)言都有自己的短處和長(zhǎng)處,這也可能使得算法實(shí)現(xiàn)起來更難或者更容易。計(jì)算機(jī)語(yǔ)言設(shè)計(jì)時(shí)會(huì)側(cè)重于這點(diǎn)。 我們能分析用某種特定的計(jì)算機(jī)和語(yǔ)言實(shí)現(xiàn)算法的情況。例如,在特定問題上,可能會(huì)有成本或能源的限制,因此開發(fā)時(shí)間或者硬件的成本可能成為約束條件。編程語(yǔ)言的選擇會(huì)影響前者;而處理器的選擇會(huì)影響后者。 初學(xué)的時(shí)候,最好強(qiáng)調(diào)算法和實(shí)現(xiàn)之間的差異。然而,正如前面所提到的,它們也并不總是獨(dú)立的。對(duì)于特定的問題,通常會(huì)有多種算法能夠得到正確解答。例如,要在特定的計(jì)算機(jī)上解決某個(gè)問題,選擇的算法往往是適合這類機(jī)器的。舉兩個(gè)例子。多核處理器可以同時(shí)運(yùn)行一個(gè)程序的多個(gè)部分,有些算法比其他算法更適合這樣的環(huán)境。另一個(gè)例子是嵌入式處理器,如控制汽車的剎車。該處理器只需較低的計(jì)算能力和內(nèi)存,因此具有低功耗和低內(nèi)存需求的算法可能更為合適。 3.2.2細(xì)化 算法需要足夠細(xì)致,指出要達(dá)到目標(biāo)必須完成的所有事情。然而,“足夠細(xì)致”本身很難準(zhǔn)確定義。算法需要有足夠的細(xì)節(jié),以便能按照它實(shí)現(xiàn)(在紙上或在程序中)全部預(yù)期的結(jié)果。回想一下巧克力蛋糕的算法(食譜)?!盎旌线@些原料并進(jìn)行烹飪”不夠詳細(xì),但描述如何用勺子攪拌(右手拿起勺子,左手拿碗,用勺子在混合物中攪拌……),又加入了過多的細(xì)節(jié)。經(jīng)驗(yàn)豐富的廚師所需要的食譜對(duì)于缺乏經(jīng)驗(yàn)的人來說往往是“不夠詳細(xì)”的,食譜細(xì)節(jié)的多少要根據(jù)使用者的變化而變化。同樣,經(jīng)驗(yàn)豐富和缺乏經(jīng)驗(yàn)的人,對(duì)于計(jì)算機(jī)算法的詳細(xì)程度也有不同要求。學(xué)習(xí)算法和編程,能提升對(duì)算法的理解程度。
編輯推薦
《Python入門經(jīng)典:以解決計(jì)算問題為導(dǎo)向的Python編程實(shí)踐》不僅適合入門級(jí)的Python程序員系統(tǒng)學(xué)習(xí),也適合作為高等院校計(jì)算機(jī)和非計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)課程教材。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載