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