內容簡介
本書是以Python為編程語言、麵嚮計算機科學教育中的程序設計基礎課程與編程初學者的入門教材和自學讀物。本書以Python為工具,詳細討論瞭與編程有關的各方麵問題,介紹瞭從初級到高級的許多重要編程技術。本書特彆強調編程中的分析和思考、問題的嚴格化和逐步分解、語言結構的正確選擇、程序結構的良好組織,以及程序的正確和安全。書中通過大量實例及其開發過程,展示瞭好程序的特徵和正確的編程工作方法。此外,書中還介紹Python語言的重要細節和工作原理,各章附有大量習題。本書既可以作為高校程序設計相關課程的教材,也適閤希望學習Python語言和編程技術的讀者閱讀和參考。
目錄
前言
第1章 程序設計和Python 1
1.1 計算機和程序1
1.1.1 “是什麼”和“怎樣做”的知識1
1.1.2 計算和程序3
1.1.3 編程語言7
1.2 Python語言簡介10
1.2.1 Python語言的發展和應用10
1.2.2 Python係統和IDLE編程環境13
1.3 程序開發15
1.3.1 程序開發過程15
1.3.2 程序錯誤16
1.3.3 從問題到程序19
練習22
第2章 計算和編程初步 23
2.1 數值錶達式和算術23
2.1.1 整數計算23
2.1.2 浮點數和復數27
2.2 數據對象、計算和類型29
2.2.1 對象和類型29
2.2.2 混閤類型計算和類型轉換30
2.2.3 數值類型和計算的簡單總結31
2.3 內置函數和數學函數包32
2.3.1 函數及其使用33
2.3.2 處理數值的內置函數33
2.3.3 數學函數包34
2.4 字符串35
2.4.1 字符串和字符串類型35
2.4.2 字符串操作36
2.5 標識符、變量和賦值38
2.5.1 變量、名字和值38
2.5.2 簡單順序計算40
2.6 簡單腳本程序41
2.6.1 腳本的編輯和執行41
2.6.2 程序和輸入43
2.7 判斷和條件控製45
2.7.1 條件判斷和邏輯錶達式45
2.7.2 if語句(條件語句)46
2.7.3 編程實例48
2.8 重復計算和循環49
2.8.1 重復計算50
2.8.2 for語句和重復計算51
2.8.3 while語句和迭代53
2.8.4 循環控製56
2.9 計算的抽象和函數56
2.9.1 計算的控製和抽象56
2.9.2 計算的抽象:函數57
2.9.3 函數定義和使用實例60
2.10 若乾Python機製及其他62
2.10.1 已討論的Python機製62
2.10.2 若乾Python機製62
2.10.3 Python解釋器64
2.11 補充材料64
2.11.1 語言細節65
2.11.2 編程技術70
練習71
第3章 基本編程技術 77
3.1 循環程序設計77
3.1.1 循環的需求和問題78
3.1.2 常見循環形式80
3.1.3 輸入循環86
3.2 遞歸89
3.2.1 遞歸定義的函數89
3.2.2 乘冪的計算90
3.2.3 循環和遞歸91
3.2.4 斐波那契數列的計算92
3.2.5 最大公約數97
3.2.6 不容易用循環求解的遞歸問題100
3.2.7 更復雜的遞歸情況103
3.3 程序終止性103
3.3.1 調和級數的部分和104
3.3.2 程序終止性不可判定104
3.4 定義函數105
3.4.1 為什麼定義函數105
3.4.2 學習定義函數108
3.4.3 函數:兩種觀點及其聯係111
3.4.4 通用和專用的方法117
練習120
第4章 函數和程序結構 124
4.1 作用域、環境和狀態124
4.1.1 作用域與函數定義124
4.1.2 環境和狀態126
4.1.3 程序執行中的環境變化129
4.1.4 模塊和環境133
4.2 函數定義和函數調用135
4.2.1 函數定義的結構135
4.2.2 函數調用中的問題140
4.2.3 帶默認值形參和關鍵字實參143
4.3 編程框架和高階函數145
4.3.1 編程框架和函數的函數參數145
4.3.2 匿名函數和lambda錶達式149
4.3.3 隨機數和模擬153
4.3.4 高階函數155
4.4 程序的測試和調試156
4.4.1 測試157
4.4.2 排除程序裏的錯誤162
4.4.3 使用IDLE的調試功能163
4.4.4 程序測試問題165
4.5 補充材料166
4.5.1 語言細節166
4.5.2 編程技術和規則169
練習169
第5章 數據的組織和操作 172
5.1 組閤數據對象172
5.2 錶173
5.2.1 簡介174
5.2.2 錶的構造和操作175
5.2.3 編程實例178
5.3 元組183
5.3.1 基礎183
5.3.2 有理數程序包185
5.3.3 打包和拆分187
5.4 序列、不變對象和可變對象189
5.4.1 序列和序列操作189
5.4.2 描述式194
5.4.3 對象、變動和變量關聯196
5.4.4 一些程序實例202
5.4.5 錶處理204
5.5 字符串及其格式化生成209
5.5.1 字符串操作209
5.5.2 字符串的格式化213
5.5.3 一個簡單的交互式計算器216
5.6 字典217
5.6.1 概念和操作218
5.6.2 字典與函數參數221
5.6.3 字典的應用實例222
5.7 集閤224
5.7.1 概念和操作224
5.7.2 集閤操作226
5.8 程序實例228
5.8.1 多項式計算228
5.8.2 另一個篩法實例231
5.9 若乾語言和技術問題232
5.9.1 邏輯類型和邏輯判斷232
5.9.2 函數參數的總結235
5.10 補充材料236
5.10.1 語言細節236
5.10.2 編程技術240
練習241
第6章 高級編程技術 248
6.1 文件:使用外存數據248
6.1.1 文件和輸入/輸齣249
6.1.2 Python的文件功能251
6.1.3 文件處理程序實例256
6.2 生成器函數和閉包261
6.2.1 生成器函數261
6.2.2 閉包和裝飾器265
6.2.3 編程實例274
6.3 異常和異常處理276
6.3.1 運行中的錯誤277
6.3.2 異常和異常處理279
6.3.3 異常處理的結構和技術282
6.3.4 try結構和raise語句詳述284
6.3.5 預定義異常287
6.3.6 用異常作為控製機製288
6.4 數據處理和持久性291
6.4.1 文本生成291
6.4.2 數據記錄和信息管理295
6.4.3 數據持久性300
6.4.4 with語句302
6.5 Python程序的幾個問題304
6.5.1 Python程序及其運行304
6.5.2 程序格式307
6.5.3 怎樣閱讀Python手冊308
6.6 補充材料309
6.6.1 語言細節309
6.6.2 編程技術313
練習315
第7章 數據抽象和麵嚮對象編程 320
7.1 數據抽象、類和自定義類型320
7.1.1 類型和數據組閤321
7.1.2 對象、類和類型323
7.2 Python的類和對象325
7.2.1 對象和操作325
7.2.2 類定義326
7.2.3 幾點說明332
7.2.4 編程實例335
7.3 繼承339
7.3.1 繼承、基類和派生類340
7.3.2 編程實例344
7.3.3 多繼承348
7.3.4 異常和類349
7.4 實例:學校人事管理350
7.4.1 概念分層和基礎人員類350
7.4.2 具體人員類的設計和實現355
7.4.3 討論358
7.5 特殊方法名和特殊功能的類359
7.5.1 容器類和迭代器359
*7.5.2 上下文管理器和with語句363
7.5.3 幾個特殊方法名364
7.6 補充材料365
*7.6.1 Python類、對象和方法365
7.6.2 麵嚮對象的技術和方法371
7.6.3 總結373
練習374
第8章 其他編程問題 377
8.1 圖形用戶界麵377
8.1.1 人機界麵的問題377
8.1.2 標準庫包tkinter和圖形用戶界麵380
*8.1.3 tkinter的ttk包400
8.1.4 GUI的簡單應用和問題402
8.1.5 應用程序的GUI設計和實現404
8.1.6 總結和討論412
8.2 並發程序設計414
8.2.1 並發程序415
8.2.2 Python並發庫threading包418
8.2.3 定義自己的綫程類422
8.2.4 並發程序的一些問題424
8.2.5 綫程間通信和queue包431
8.2.6 一個GUI並發程序實例433
8.2.7 總結和討論436
練習438
附錄A Python語言速查 440
附錄B 標準函數 444
附錄C 書中使用的幾個標準庫包 448
附錄D IDLE開發環境 449
參考文獻及進一步閱讀資料 452
前言/序言
計算機誕生至今不過六七十年,但它已經改變瞭世界,改變瞭每個人的生活。人們每天都在與計算機交流(如智能手機),各領域專業人員的大量日常工作都需要使用計算機,從事與計算機相關工作的人們已經發展為社會上最大的專業技術社團。計算機的研究和應用、互聯網和其他相關領域,還在不斷呼喚大量熟悉計算機的專業開發人纔。計算機科學技術的開發和應用能力已被廣泛認為是國傢競爭力的重要組成部分。因此,學習計算機科學技術知識,不僅是社會發展的需要,而且已成為個人的重要職業競爭力。然而,要深入理解計算和計算機,使其成為得心應手的工具,就必須學習編程。
近年來,Python語言的良好特徵已經得到學界和業界的廣泛認可,被世界上許多知名大學選作計算機科學教育的第一門語言,也被很多企業和實際項目作為開發語言。這些發展情況,使越來越多的人有瞭學習Python的興趣和需要。
本書源自作者講授基於Python的編程課程的經驗,又經過認真整理,目標是提供一條清晰易行的學習路徑。本書的結構和內容力圖反映編程的本質,可以作為高校計算機基礎課程教材,也適閤希望學習Python語言和編程技術的讀者閱讀和參考。本書書名反映瞭作者對編程的基本認識:編程是從要解決的問題開始,最終得到解決問題的程序的過程。要學好編程,就要努力去理解這個過程,還必須反復實踐。
編程就是為瞭指揮計算機(而不是我們自己),通過一個自動計算過程(而不是人的操作)去解決問題。為瞭指揮計算機工作,我們需要理解計算機,理解計算過程,理解指揮計算機完成計算的途徑和方法。還需要一種計算機能處理的錶達方式,也就是編程語言(或稱程序設計語言,本書中用Python),用於說明計算機應該怎樣工作。
程序是人寫齣的一段文字,錶達的是要求計算機完成的一個計算過程。完成編程工作需要多方麵的理解。首先需要理解麵對的問題:它究竟是什麼、要求做什麼、可能用什麼方法和計算過程去解決?要理解自己寫齣的程序,理解它描述的計算過程。最後的理解也非常重要:理解兩者之間的關係,即自己的程序是否正確解決瞭相應的問題?沒有對問題和程序的深入思考和理解,就不可能開發齣好的、功能正確的程序。
學習編程時必須關注兩方麵的問題:如何從一個解決問題的需求齣發,逐步開發齣一個計算過程;如何使用編程語言(如Python)正確地寫齣解決問題的程序,描述(實現)這個計算過程。本書的做法是提齣一個個問題,從簡單到復雜,討論從它們齣發的程序開發過程:分析問題的細節,設法將其嚴格化,提齣可能的解決方案,再經分解和設計,以及隨後的編碼和調試,最終開發齣一個程序。完成瞭一個程序,常常不是工作的結束,還需要迴過頭去考察這個程序,分析其優點和缺點,研究改進或變化的可能性。這樣的程序開發過程和其中的分析、思考、選擇、決策等,反映瞭編程工作的本質和正確工作方法。當然,考慮到讀者的經驗積纍,較前章節中的討論包含瞭更多細節,後麵逐漸簡化,可能隻關注工作中的一些要點。但是實際上,對任何一個問題,無論簡單或復雜,上述的思考和工作過程都會再一次重復。隻不過隨著讀者的經驗積纍,一些問題的分析和決策變得愈發自然順暢,以至於其明顯性逐步減弱。這種趨勢也反映瞭讀者的進步。
在閱讀本書的過程中,建議讀者去親身體驗程序的開發過程:看到一個問題之後,最好先不去看書中的分析和解決方法,而是自己思考,設法解決這個問題,完成之後再與書中的做法比較。如果兩種做法不同,就應該分析它們各自的長處和短處。采用這樣的方法學習本書(和編程),讀者將不再是被動的接受者,而是主動參與者。
實際上,對每個問題,都可能有很多(理論上是無窮多)不同解決方法,對不同方法和設計的比較、選擇和決策,也是編程工作中最重要的內容。對一個具體問題,總可能做齣很多正確程序。如果問題稍微復雜,常能做齣一組程序,其中任何一個都不比彆的程序“更好”。這些情況說明,在編程學習中,並沒有必須背誦的標準答案。當然,另一方麵,作者也希望通過書中實例,反映良好的編程工作和好程序的特徵。書中程序都由作者開發(其間也參考瞭許多材料),並經過仔細修改和運行試驗。程序的格式符閤Python社團的考慮,結構良好,實現方法清晰簡潔,可以作為讀者參考的範例。
編程語言是編程的工具,也是人與計算機交流的工具。它既要反映思維的特點,使人易於使用,也要反映計算機的特點,使計算機能按它寫齣的程序高效工作。Python被廣泛認為是一種比較適閤初學者的語言,其設計較好地反映瞭計算機和編程的性質和特點,具有比較平滑的學習麯綫。最簡單的Python程序可以看作數學和算術的自然延續,可以方便地運行,立刻看到結果(或效果)。初學者可以從這裏開始一步步深入,在解決越來越復雜的問題的過程中,逐漸領悟編程和計算的性質和本質。另一方麵,Python也支持許多高級編程概念,從高階函數、生成器函數,到復雜數據對象的描述式、麵嚮對象的編程等,反映瞭現代編程技術和需求的發展。本書中詳細介紹瞭這些機製和
從問題到程序 用Python學編程和計算 下載 mobi epub pdf txt 電子書 格式
評分
☆☆☆☆☆
我在京東上書買瞭不少啊,為瞭提升自己能力,以後能掙大錢,我拼瞭。
評分
☆☆☆☆☆
看瞭幾本翻譯的書都覺得難以符閤中國人的習慣,相信裘宗燕老師的書一定很好
評分
☆☆☆☆☆
好書,收獲大,期待下次購物。
評分
☆☆☆☆☆
看瞭幾本翻譯的書都覺得難以符閤中國人的習慣,相信裘宗燕老師的書一定很好
評分
☆☆☆☆☆
是我見過的最好的寫python的書,關鍵是給瞭不少語言編程的思想啓發
評分
☆☆☆☆☆
是我見過的最好的寫python的書,關鍵是給瞭不少語言編程的思想啓發
評分
☆☆☆☆☆
好。。。。...
評分
☆☆☆☆☆
好。。。。...
評分
☆☆☆☆☆
裘老的書質量還是不錯滴,適閤Python 3初學者。