程序設計導論:Python語言實踐

程序設計導論:Python語言實踐 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
[美] 羅伯特·塞奇威剋,[美] 凱文·韋恩,[美] 羅伯特·唐德羅 著,江紅,餘青鬆 譯



點擊這裡下載
    

想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-25

類似圖書 點擊查看全場最低價


圖書介紹

齣版社: 機械工業齣版社
ISBN:9787111549246
版次:1
商品編碼:12009881
品牌:機工齣版
包裝:平裝
叢書名: 計算機科學叢書
開本:16開
齣版時間:2016-11-01
用紙:膠版紙
頁數:519


相關圖書





圖書描述

內容簡介

  本書從跨學科的角度入手,強調應用,介紹Python有用的功能,包括編程的基本要素、功能、模塊、麵嚮對象編程和數據抽象對象、算法與數據結構,融匯瞭作者豐富的課堂教學經驗,提供瞭大量源代碼、I/O庫和精選實例。適閤作為高校計算機專業編程課程的教材。

目錄

齣版者的話
譯者序
前言
第1章 程序設計的基本元素1
1.1 你的第一個程序1
1.1.1 Python程序設計2
1.1.2 輸入和輸齣4
1.1.3 問題和解答5
1.1.4 習題8
1.2 內置數據類型8
1.2.1 相關術語9
1.2.2 字符串14
1.2.3 整數16
1.2.4 浮點數18
1.2.5 布爾值20
1.2.6 比較22
1.2.7 函數和API24
1.2.8 數據類型轉換26
1.2.9 小結28
1.2.10 問題和解答(字符串)28
1.2.11 問題和解答(整數)30
1.2.12 問題和解答(浮點數)31
1.2.13 問題和解答32
1.2.14 習題34
1.2.15 創新習題35
1.3 選擇結構和循環結構37
1.3.1 if語句38
1.3.2 else子句39
1.3.3 while語句40
1.3.4 for語句44
1.3.5 語句嵌套46
1.3.6 應用實例48
1.3.7 循環和中斷55
1.3.8 死循環56
1.3.9 小結57
1.3.10 問題和解答58
1.3.11 習題60
1.3.12 創新習題63
1.4 數組65
1.4.1 Python中的數組66
1.4.2 數組彆名和拷貝70
1.4.3 Python對數組操作提供的係統支持71
1.4.4 一維數組應用實例73
1.4.5 二維數組80
1.4.6 二維數組應用實例:自迴避隨機行走84
1.4.7 小結87
1.4.8 問題和解答(字符串)87
1.4.9 習題88
1.4.10 創新習題89
1.5 輸入和輸齣92
1.5.1 鳥瞰圖93
1.5.2 標準輸齣95
1.5.3 標準輸入97
1.5.4 重定嚮和管道100
1.5.5 標準繪圖104
1.5.6 動畫111
1.5.7 標準音頻113
1.5.8 小結115
1.5.9 問題和解答116
1.5.10 習題118
1.5.11 創新習題121
1.6 應用案例:隨機Web衝浪模型123
1.6.1 輸入格式124
1.6.2 轉換矩陣125
1.6.3 模擬126
1.6.4 混閤馬爾可夫鏈130
1.6.5 經驗總結134
1.6.6 習題135
1.6.7 創新習題136
第2章 函數和模塊137
2.1 定義函數137
2.1.1 調用和定義函數138
2.1.2 實現數學函數145
2.1.3 使用函數組織代碼147
2.1.4 傳遞參數和返迴值149
2.1.5 實例:聲波的疊加152
2.1.6 問題和解答156
2.1.7 習題158
2.1.8 創新習題160
2.2 模塊和客戶端163
2.2.1 使用其他程序中的函數164
2.2.2 模塊化程序設計的抽象概念168
2.2.3 隨機數172
2.2.4 數組處理API174
2.2.5 迭代函數係統176
2.2.6 標準統計179
2.2.7 模塊化程序設計184
2.2.8 問題和解答186
2.2.9 習題188
2.2.10 創新習題189
2.3 遞歸191
2.3.1 你的第一個遞歸程序192
2.3.2 數學歸納法194
2.3.3 歐幾裏得算法194
2.3.4 漢諾塔195
2.3.5 函數調用樹196
2.3.6 指數時間198
2.3.7 格雷碼199
2.3.8 遞歸圖形200
2.3.9 布朗橋202
2.3.10 遞歸的陷阱205
2.3.11 展望207
2.3.12 問題和解答207
2.3.13 習題208
2.3.14 創新習題209
2.4 案例研究:滲透原理212
2.4.1 滲透原理213
2.4.2 基本腳手架代碼214
2.4.3 垂直滲透215
2.4.4 測試217
2.4.5 估計概率220
2.4.6 滲透原理的遞歸解決方案221
2.4.7 自適應繪製圖形224
2.4.8 經驗總結227
2.4.9 問題和解答(字符串)228
2.4.10 習題229
2.4.11 創新習題230
第3章 麵嚮對象的程序設計232
3.1 使用數據類型232
3.1.1 方法233
3.1.2 字符串處理234
3.1.3 字符串處理應用:基因組學237
3.1.4 用戶自定義數據類型237
3.1.5 顔色242
3.1.6 數字圖像處理244
3.1.7 輸入和輸齣(進一步討論)252
3.1.8 內存管理257
3.1.9 問題和解答258
3.1.10 習題259
3.1.11 創新習題261
3.2 創建數據類型264
3.2.1 數據類型的基本元素264
3.2.2 秒錶270
3.2.3 直方圖272
3.2.4 海龜繪圖273
3.2.5 遞歸圖形276
3.2.6 復數280
3.2.7 曼德布洛特集閤281
3.2.8 商業數據處理285
3.2.9 問題和解答288
3.2.10 習題290
3.2.11 創新習題293
3.3 設計數據類型296
3.3.1 設計API297
3.3.2 封裝299
3.3.3 不可變性303
3.3.4 實例:空間嚮量305
3.3.5 元組308
3.3.6 多態性309
3.3.7 重載310
3.3.8 函數是對象315
3.3.9 繼承315
3.3.10 應用:數據挖掘316
3.3.11 契約式設計321
3.3.12 問題和解答322
3.3.13 習題323
3.3.14 數據類型設計習題324
3.3.15 創新習題325
3.4 案例研究:多體模擬325
3.4.1 多體模擬326
3.4.2 問題和解答332
3.4.3 習題333
3.4.4 創新習題333
第4章 算法和數據結構334
4.1 性能334
4.1.1 觀察335
4.1.2 假說335
4.1.3 增長量級分類340
4.1.4 預測343
4.1.5 注意事項345
4.1.6 性能保證346
4.1.7 Python列錶和數組347
4.1.8 字符串349
4.1.9 內存351
4.1.10 展望354
4.1.11 問題和解答355
4.1.12 習題357
4.1.13 創新習題361
4.2 排序和查找363
4.2.1 二分查找法363
4.2.2 插入排序算法369
4.2.3 歸並排序算法374
4.2.4 Python係統排序方法377
4.2.5 應用:頻率計數378
4.2.6 經驗總結380
4.2.7 問題和解答381
4.2.8 習題382
4.2.9 創新習題383
4.3 棧和隊

前言/序言

  前 言  Introduction to Programming in Python: An Interdisciplinary Approach  21世紀以前的教育基礎是“讀、寫和算術”,而現在的教育基礎則是“讀、寫和計算”。學習編程是每個科學和工程專業學生教育過程中的重要部分。除瞭直接的應用外,學習編程是瞭解計算機科學本質的第一步。計算機科學對現代社會産生瞭毋庸置疑的影響。本書的目的是在科學環境中為需要編程或想學習編程的人講授程序設計的基本方法和應用技巧。   我們的主要目標是通過提供經驗和必要的基本工具使得學生更加有效地進行計算。我們的方法是嚮學生灌輸這樣的理念:編寫程序是一種自然而然、富有成就感和充滿創造性的體驗。我們將循序漸進地介紹基本概念,並使用應用數學和科學中的典型應用來闡述這些概念,並為學生提供編寫程序以解決相關問題的機會。   我們使用Python程序設計語言來編寫本書中的所有程序—在本書的標題中,我們在“程序設計”之後提及“Python”以強調本書是關於程序設計的基本概念,而不僅僅是Python本身。這本書講授瞭許多解決計算問題的基本技能,這些技能可以應用於許多現代計算環境中。本書自成體係,其目標人群是沒有任何編程經驗的人。   相對於傳統的CS1課程而言,本書提供瞭一種跨學科的方法。我們將重點講述計算在其他學科(材料科學、基因組學、天體物理學、網絡係統等)中的重要地位。跨學科的方法嚮學生強調一種基本思想,即在當今世界中,數學、科學、工程和計算緊密結閤在一起。同時,作為CS1的課本,本書主要麵嚮對數學、科學和工程感興趣的大學一年級學生。當然,本書也可用於自學,或者作為程序設計與其他領域相結閤的課程的補充材料。   內容範圍本書根據學習編程的四個階段來組織:基本元素、函數和模塊、麵嚮對象的程序設計、算法和數據結構。在進入編程的下一階段之前,我們將嚮讀者提供他們需要的基本信息,使讀者有信心編寫每個階段的程序。本書所講授方法的基本特徵是使用示例程序解決感興趣的問題,並提供各種練習題,從自學練習題到需要創新解決方案的挑戰性難題。   基本元素包括變量、賦值語句、內置數據類型、控製流程、數組和輸入/輸齣,以及圖形和聲音。   函數和模塊為學生揭開瞭模塊化程序設計的麵紗。我們使用熟悉的數學函數來介紹Python函數,然後討論使用函數編程的意義,包括庫函數和遞歸函數。貫穿本書,我們強調一種基本理念,即把一個程序分解為可以獨立調試、維護和重用的模塊。   麵嚮對象的程序設計是我們對數據抽象的介紹。我們強調數據類型的概念,並使用Python的類機製實現數據類型。我們將教會學生如何使用、創建和設計數據類型。模塊化、封裝和其他現代程序設計理念是麵嚮對象程序設計階段的中心概念。   算法和數據結構把這些現代程序設計理念與組織和處理數據的經典方法結閤起來,因為經典方法依舊可以有效地用於現代應用程序。我們介紹瞭經典的排序和搜索算法,同時也介紹瞭基本的數據結構及其應用,強調瞭使用科學方法來理解實現的性能特徵。   在科學和工程中的應用是本書的一個主要特點。我們通過其對具體應用的影響來強調我們所討論的每一個程序設計概念。我們的示例來源於應用數學、物理學、生物科學、計算機科學本身,並包括物理係統模擬、數值方法、數據可視化、聲音閤成、圖像處理、金融模擬和信息技術。具體的示例包括第1章用於頁麵排名的馬爾可夫鏈以及滲透問題、n體模擬、小世界現象的案例研究。這些應用都是正文不可分割的組成部分。它們為學生提供瞭資料,闡述程序設計概念的重要性,並提供瞭計算在現代科學和工程中扮演著重要角色的令人信服的證據。   我們的主要目標是教授學生學會有效解決任何程序設計問題所需要的具體機製和技能。我們完全使用Python程序,並鼓勵讀者也使用Python程序。我們關注個人的程序設計,而不是大型的程序設計。   本書在大學課程中的使用本書主要麵嚮大學一年級課程,其目標是教授新生在科學應用的背景下進行程序設計。根據本書所講授的內容,將來主修科學或工程技術的學生都將學會在熟悉的背景下學習程序設計。修完基於本書課程的學生將為在後續科學和工程技術課程中應用他們的技能做好準備,並會意識到本書所講授的內容對進一步學習計算機科學是非常有益的。   特彆是將來主修計算機科學的學生將會受益於在科學應用的背景下學習程序設計。與生物學傢、工程師和物理學傢一樣,計算機科學傢在科學方法中也需要相同的基本背景,並且要承擔科學計算的任務。   實際上,跨學科的方法使得高等院校可給將來主修計算機科學或其他科學和工程技術的學生教授同一門課程。我們覆蓋瞭CS1所規定的資料,但是我們對應用的關注給相關概念帶來瞭生命,並激發瞭學生學習這些概念的興趣。跨學科的方法嚮學生展示瞭許多不同學科中的問題,可幫助他們更明智地選擇主修方嚮。   無論采用哪種具體機製,本書的使用最好安排在全部課程的早期。首先,這種安排允許我們利用高中數學和科學中所熟悉的資料。其次,學生在大學課程的早期學習程序設計將幫助他們在繼續學習專業課程時有效地使用計算機。像閱讀和寫作一樣,程序設計很顯然也是任何科學傢和工程師的一項基本技能。掌握本書概念的學生將終生不斷發展這種技能,在其各自所選擇的領域中,他們能夠利用計算來解決或更好地理解問題和項目,並從這一過程中受益。   先修條件本書非常適閤於科學和工程技術專業的大學一年級學生。也就是說,我們不需要其他的預備知識,本書的先修條件和其他入門級科學和數學課程的要求基本一緻。   完備的數學知識很重要。我們沒有詳細闡述相關的數學知識,但我們引用瞭學生在高中已經學習的數學課程,包括代數學、幾何學和三角學。本書目標人群中的大多數學生都自動滿足這些要求。事實上,我們充分利用瞭他們在基礎課程中所熟悉的知識來介紹基本的編程概念。   科學的求知欲也是一個重要的部分。科學和工程技術專業的學生天生對進行科學探究以幫助解釋自然本質的能力非常著迷。我們使用簡單的關於自然界的程序示例支持這種偏愛。本書任何特定的知識都沒有超過高中課程中的數學、物理、生物和化學的知識範圍。   程序設計經驗不是必需的,但卻是有益的。講授程序設計是我們的主要目標,因此本書沒有要求任何先行的程序設計經驗。然而,編寫一個程序解決一個新問題是一項富有挑戰性的智力任務,所以在高中階段編寫瞭許多程序的學生會從選修基於本書的程序設計入門課程中受益。本書可滿足各種不同背景的學生的授課需求,因為本書中的應用無論對於新手還是專傢都具有吸引力。   使用計算機的經驗也不是必需的,況且這根本不是問題。現在的大學生經常使用計算機與親朋好友交流、聽音樂、處理照片或進行許多其他活動。能夠以有趣而又重要的方式駕馭自己的計算機需要扣人心弦和長期的訓練。   總之,幾乎所有科學和工程技術領域的學生都可以在他們第一個學期的課錶中選修基於本書的課程。   目標在科學和工程技術專業的高級課程中,教師希望完成基於本書課程的學生學到什麼樣的知識呢?我們覆蓋瞭CS1課程,但任何講授入門級程序設計課程的教師都知道,教授後續課程的教師期望值很高:每個教師都希望學生已經熟悉所需使用的計算環境和方法。物理學教授可能期望某些學生在周末設計一個程序來運行模擬;工程學教授可能期望某些學生使用一個特定的軟件包並基於數值方法求解微分方程;計算機科學教授可能期望學生掌握特定編程環境的詳細知識。本書真的可以滿足這些不同的期望嗎?對於不同的學生群體,是否需要不同的入門級課程?自從20世紀後期計算機被廣泛使用以來,高等院校就一直被這些類似問題睏擾。對於這些問題,我們給齣的解答是本書介紹通用的程序設計入門方法,類似於數學、物理學、生物學和化學中普遍接受的入門級課程。本書努力為科學和工程技術專業的學生提供必要的基本準備,同時也清楚地傳遞這樣的信息:理解計算機科學比程序設計更重要。學習過本書的學生,教師可期望他們擁有適應於新的計算環境和在不同應用中有效利用計算機的必要知識和能力。   完成基於本書課程的學生,他們期望在後續課程中學習到什麼呢?我們的觀點是程序設計並不難學,但學會駕馭計算機意義深遠。在未來的職業生涯中,掌握瞭本書知識的學生已為應對計算挑戰做好準備。他們瞭解現代程序設計環境(例如本書介紹的Python)將為未來可能遇見的任何計算問題打開一扇大門,同時他們也獲得瞭學習、評價和使用其他計算工具的信心。對計算機科學感興趣的學生將準備好進一步追尋這些興趣,科學和工程技術專業的學生將準備好將計算融閤到他們的研究中。   本書官網在如下網站上,可以找到關於正文的大量補充信息:   http://introcs.cs.princeton.edu/python為瞭方便,我們把這個站點稱為本書官網。該網站包含瞭為使用本書的教師、學生和其他讀者準備的資料。我們在這裏簡要描述一下這些資料,雖然所有的Web用戶都知道,最好的方法是通過瀏覽器縱覽它們。除瞭少部分用於測試的資料,其他資料都是公開可用的。   本書官網的一個最重要的意義是讓教師和學生可以使用自己的計算機教授或學習這些資料。任何擁有計算機和瀏覽器的人,均可按照本書官網提供的一些指示開始學習程序設計。這個過程並不比下載一個媒體播放器或一首歌更睏難。和任何其他網站一樣,我們的網站也一直保持更新。對於任何擁有本書的人而言,本書官網是一個非常重要的資源。特彆是補充材料對於我們達到如下目標至關重要,那就是使得計算機科學成為所有科學傢和工程師教育不可分割的有機組成部分。   對於教師,本書官網包含瞭與教學相關的信息。這些信息主要按照我們過去十幾年開發的教學模式進行組織,我們每周為學生授課兩次,並且每周對學生進行兩次課外輔導,學生分成小組與任課教師或助教進行討論。本書官網包括用於這些授課的演示幻燈片,教師可基於這些幻燈片根據需要進行補充和修改。   對於助教,本書官網包含瞭詳細的問題集和編程項目,它們均基於本書的習題,但包含更多的詳細信息。每個程序設計任務作業旨在基於一個有趣的應用環境教授一個相關的概念,同時為每個學生提齣一個引人入勝的挑戰。課外作業的進展體現瞭我們的教學方法。本書官網全麵詳細地說明瞭所有的作業,並提供詳細的結構化信息幫助學生在規定時間內完成任務,包括有關建議方法的描述,以及在課堂中應該講述的授課內容綱要。   對於學生,本書官網包含可快速訪問的本書的大部分資料,包括源代碼以及鼓勵學生自學的額外資料。本書官網為書本中的許多習題提供瞭參考解答,包括完整的程序代碼和測試數據。還有許多與程序設計作業相關的信息,包括建議的方法、檢查清單、常見問題解答以及測試數據。   對於一般讀者,本書官網是訪問與本書內容相關的所有額外信息的資源庫。所有的網站內容都提供Web超鏈接和其他路徑,以幫助讀者尋找有關討論主題的更多信息。網站包含瞭非常多的信息,比任何個人所能想象和接受的信息多得多,因為我們的目標是為本書內容提供足夠多的信息,以滿足每位讀者的需求。   緻謝這個項目自1992年開始啓動,迄今為止,許多人為這個項目的成功做齣瞭貢獻,我們在此對他們錶示誠摯的感謝。特彆感謝Anne Rogers的大力幫助,使本項目得以順利啓動;感謝Dave Hanson、Andrew Appel和Chris van Wyk耐心地解釋數據的抽象化;還要感謝Lisa Worthington,她是第一個接受挑戰,使用本書給大學一年級學生上課的老師。同時我們還要感謝/dev/126的努力;感謝過去25年中在普林斯頓大學緻力於講授本書內容的教師、研究生和教學人員;感謝成韆上萬努力學習本書的大學生們。   Robert SedgewickKevin WayneRobert Dondero2015.4   譯者序Introduction to Programming in Python: An Interdisciplinary Approach本書介紹程序設計的基本概念,而不僅僅是Python本身。本書的側重點在於講授使用程序設計解決各學科(從材料科學到基因組學、天體物理學、網絡係統等)中的計算問題。本書除瞭講述Python語言基礎知識之外,還涉及許多新的研究領域(例如,隨機Web衝浪模型、滲透原理、多體模擬、數據挖掘、小世界現象等),能激發學生對科學探究的求知欲,為以後專業課的學習打下堅實的基礎。   本書采用跨學科的方法,重點講述計算在其他學科中的重要地位。 程序設計導論:Python語言實踐 下載 mobi epub pdf txt 電子書 格式

程序設計導論:Python語言實踐 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

程序設計導論:Python語言實踐 下載 mobi pdf epub txt 電子書 格式 2024

程序設計導論:Python語言實踐 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

程序設計導論:Python語言實踐 不粗哦

評分

學習用品,很喜歡

評分

很好的一本書,非常贊,學習python和數據結構必備!

評分

很經典很喜歡

評分

活著,就像明天就會死去;學習就像你會永生。

評分

還可以,但英文版更好

評分

程序設計導論:Python語言實踐

評分

好好看,好好學

評分

正版,總體不錯,好!

類似圖書 點擊查看全場最低價

程序設計導論:Python語言實踐 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有