定 價:49 元
叢書名:高等教育質(zhì)量工程信息技術(shù)系列示范教材
- 作者:張基溫 魏士靖
- 出版時間:2019/1/1
- ISBN:9787302511908
- 出 版 社:清華大學出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書是一本Python基礎(chǔ)教材。全書以Python 3.0為藍本,分6章介紹。
第1章從模仿計算器進行簡單的計算入手,帶領(lǐng)讀者邁進Python門檻;順勢引導讀者掌握Python模塊的用法、變量的用法;再進一步引入選擇結(jié)構(gòu)和重復結(jié)構(gòu),使讀者有了程序和算法的基本概念,進入程序設計的殿堂。第2章首先介紹Python特有的數(shù)據(jù)對象與變量之間的關(guān)系,然后較詳細地介紹了Python各種內(nèi)置的數(shù)據(jù)類型。第3章從正常處理和異常處理兩個角度介紹Python程序過程的兩種基本組織形式:函數(shù)和異常處理,并介紹與之相關(guān)的名字空間和作用域的概念。第4章把讀者從面向過程帶到面向類的程序設計,內(nèi)容包括類與對象、類與對象的通用屬性與操作、類的繼承。第5章為Python GUI開發(fā),使讀者具備開發(fā)友好界面程序的能力。 第6章為Python應用開發(fā)舉例,從數(shù)據(jù)處理和網(wǎng)絡應用兩個*基本應用領(lǐng)域,培養(yǎng)讀者的應用開發(fā)能力。
本書力求內(nèi)容精練、概念準確、代碼便于閱讀、習題豐富全面、適合教,也容易學;例子分正反兩種,以利正本清源。為了便于初學者很快使用Python以豐富的模塊支撐的環(huán)境,書后給出了Python內(nèi)置函數(shù)、Python文件和目錄管理、Python 3.0標準異常類體系和Python標準模塊庫目錄。
? 彰顯計算思維 語言藝術(shù) 工程規(guī)范的程序設計教育理念。
? 概念力求精準,突出思想性、啟發(fā)性、本質(zhì)性。
? 結(jié)構(gòu)力求嚴謹、緊湊,便于知識總結(jié)、梳理。
? 例題力求經(jīng)典,例程力求簡短,便于閱讀、理解。
? 素材力求豐富,創(chuàng)造一個良好的知識建構(gòu)環(huán)境和后期學習參考。
? 習題力求豐富、多樣,減輕教師開發(fā)題目的負擔。
? 零起點、輕松入門、螺旋式深入,適合不同層次的教學。
? 以Python 3.6.1為藍本,例程多在IDLE界面上調(diào)試,以便初學者快速掌握Python語法。
前言
近年來,一種程序設計語言日漸粲然,使許多紅極一時的程序設計語言黯然失色,得到人們的空前青睞,使得在學界和業(yè)界出現(xiàn)了揭竿而起、應者云集的景象。這種程序設計語言就是Python。本書也想在此時為熊熊燃起的Python烈火再添上一把柴。
(一)
Python之所以能夠冉冉升起,在于其鮮明的特色。
Python簡單、易學。它雖然是用C語言寫的,但是它摒棄了C語言中任性不羈的指針,降低了學習和應用的難度。
Python代碼明確、優(yōu)雅。其代碼描述具有偽代碼風格,使人容易理解;其強制縮進的規(guī)則使得代碼具有極佳的可讀性。
Python自由、開放。Python是FLOSS(Free/Libre and Open Source Software,自由/開放源碼軟件)之一。它支持向不同的平臺上移植,允許部分程序用應用廣泛的C/C 語言編寫;它可提供腳本功能,允許把Python程序嵌入C/C 程序中。它還鼓勵更優(yōu)秀者的創(chuàng)造、改進與擴張,因此使其在短短的發(fā)展歷程中形成異常龐大、幾乎覆蓋一切應用領(lǐng)域的標準庫和第三方庫,為開發(fā)者提供了豐富的可復用資源和便利的開發(fā)環(huán)境。
(二)
為了彰顯優(yōu)勢,Python博采眾長、趨利避害,形成一套獨特的語法體系。其中有些語法現(xiàn)象是用別的語言的語法體系解釋不清楚的,強行解釋反而會誤導學者。本書力圖正本清源,從基本理論出發(fā),對Python的語法給出一個清晰而本原的概念和解釋,以此為基礎(chǔ)快速而扎實地將學習者帶進Python應用開發(fā)中展現(xiàn)才干。
本書共分6章。第1章從初中水平的讀者就能懂的計算開始,將讀者引進Python 世界。同時,插進一些最基本的語法知識,如輸入輸出、變量、模塊,然后通過選擇和循環(huán)結(jié)構(gòu)帶領(lǐng)讀者在簡單算法中試水。
第2~4章在第1章的基礎(chǔ)上深入淺出地介紹數(shù)據(jù)類型、面向過程的結(jié)構(gòu)和面向?qū)ο蟮慕Y(jié)構(gòu)。在此期間讓學習者進一步理解對象與變量、各種原子類型和內(nèi)置容器類型、函數(shù)、異常處理、名字空間與作用域。
第5、6章是應用開發(fā)。第5章為Python UGI開發(fā),第6章為Python應用開發(fā)舉例。這兩章的內(nèi)容突出了Python應用開發(fā)的兩個要素:領(lǐng)域知識的了解和相應模塊的應用。
(三)
著名心理學家皮亞杰創(chuàng)建的結(jié)構(gòu)主義對教師的主要職責定義是為學習者創(chuàng)建學習環(huán)境。教材是為學習者創(chuàng)建的一種學習環(huán)境。除正文的內(nèi)容選擇、順序安排之外,還有例題、練習題和附錄。
本書例題力求代碼精干,以便讀者理解。練習題是以大節(jié)為單位進行組織的,并且題型多樣,針對性強,便于學習者學習某一節(jié)后,立即可以從不同角度進行檢測。
鑒于已經(jīng)出版的多種教材中存在的對Python基本概念解釋含混,甚至錯誤的情況,本書還收集了一些著作中的錯誤概念作為反例放在相關(guān)的習題中,供讀者分析、批判,以正本清源,提高讀者對Python語法的辨別、理解和應用能力。
本書的附錄由四部分組成:Python內(nèi)置函數(shù)、Python 3.0標準異常類結(jié)構(gòu)、文件與目錄管理和Python標準模塊庫目錄。這些內(nèi)容相當于一個常用手冊,可以為初學者提供一個繼續(xù)學習或擴展學習的環(huán)境。
(四)
進行編寫中,收集并設計了多種類型的習題,并且在每一節(jié)后面都給出了相應的練習題。作為Python教材,本書把附錄和習題作為正文之外的兩個重要的學習環(huán)境。本書的附錄包括操作符、內(nèi)置函數(shù)、模塊目錄和異常類結(jié)構(gòu)。這些內(nèi)容相當于一本簡明的應用手冊,會給想繼續(xù)深入并提高自己Python開發(fā)能力的學習者提供一個擴展的環(huán)境。
這些附錄也表明Python開源代碼的特點和社區(qū)廣大熱心者的支持,是Python生命力的源泉。雖然目前Python已經(jīng)有上千種模塊可以被利用,而附錄中列出的Python 3x的標準模塊庫僅有20多項,但已足以對Python的應用范圍畫出一個輪廓。
(五)
在本書出版之前,魏士靖細心進行了代碼校驗和文字校對,并制作了PPT;吳灼偉設計了書中部分插圖;劉硯秋、趙忠孝、姚威、張展為、張秋菊、史林娟、張有明等也參與了部分工作。在此謹表謝意。
本書的出版是我在程序設計教學改革工作中跨上的一個新臺階。本人衷心希望得到有關(guān)專家和讀者的批評和建議,也希望能多結(jié)交一些志同道合者,把本書改得更好一些。
張基溫
戊戌初夏于穗小海之畔
目錄
第1章 一個萬能計算器 1
1.1 簡單算術(shù)計算 1
1.1.1 Python算術(shù)操作符 1
1.1.2 回顯與print() 2
1.1.3 Python表達式計算規(guī)則 3
練習1.1 3
1.2 使用內(nèi)置數(shù)學函數(shù)計算 4
1.2.1 函數(shù)與內(nèi)置函數(shù) 4
1.2.2 Python計算型內(nèi)置函數(shù)對象 4
練習1.2 5
1.3 利用math模塊進行計算 6
1.3.1 模塊化程序設計與Python模塊 6
1.3.2 導入模塊或?qū)ο?6
1.3.3 math模塊中的常量與函數(shù) 8
練習1.3 10
1.4 使用變量計算 11
1.4.1 數(shù)據(jù)對象、變量與賦值 11
1.4.2 幾種不同的賦值方式 12
1.4.3 Python標識符與保留字 13
1.4.4 input()函數(shù) 14
練習1.4 15
1.5 選擇型計算 16
1.5.1 if-else型選擇的基本結(jié)構(gòu) 16
1.5.2 選擇表達式 17
1.5.3 if-else蛻化結(jié)構(gòu) 18
1.5.4 if-else嵌套 18
1.5.5 if-elif選擇結(jié)構(gòu) 19
練習1.5 20
1.6 重復型計算 21
1.6.1 while語句 22
1.6.2 for語句 23
1.6.3 循環(huán)嵌套 25
1.6.4 在IDLE中執(zhí)行功能完整的代碼段 27
1.6.5 循環(huán)中斷語句與短路控制 28
練習1.6 29
1.7 窮舉與迭代 30
1.7.1 窮舉 30
1.7.2 迭代 32
練習1.7 37
第2章 Python數(shù)據(jù)對象 40
2.1 Python數(shù)據(jù)對象的屬性 40
2.1.1 Python數(shù)據(jù)對象的類型 40
2.1.2 Python對象的身份碼ID與判是操作 43
2.1.3 可變對象與不可變對象 45
2.1.4 Python數(shù)據(jù)對象生命期與垃圾回收 46
2.1.5 Python小整數(shù)對象池與大整數(shù)對象池 49
練習2.1 51
2.2 Python基本數(shù)據(jù)類型 52
2.2.1 bool類型 52
2.2.2 int類型 56
2.2.3 float類型 58
2.2.4 complex類型 59
2.2.5 Python數(shù)據(jù)類型轉(zhuǎn)換 60
練習2.2 62
2.3 序列 64
2.3.1 序列對象的構(gòu)建 64
2.3.2 序列通用操作 66
2.3.3 列表的個性化操作 72
練習2.3 74
2.4 字符串 77
2.4.1 字符串編碼與解碼 77
2.4.2 字符串的個性化操作 81
2.4.3 字符串格式化與format()方法 83
2.4.4 print()函數(shù)的格式控制 86
2.4.5 正則表達式 89
練習2.4 95
2.5 字典與集合 96
2.5.1 字典 96
2.5.2 集合 100
練習2.5 103
2.6 Python數(shù)據(jù)文件 106
2.6.1 數(shù)據(jù)文件概述 106
2.6.2 open()函數(shù) 107
2.6.3 文件屬性與方法 109
練習2.6 110
第3章 Python過程組織與管理 112
3.1 Python函數(shù) 112
3.1.1 函數(shù)及其關(guān)鍵環(huán)節(jié) 112
3.1.2 Python函數(shù)參數(shù)技術(shù) 116
3.1.3 Python函數(shù)的第一類對象特性 120
3.1.4 函數(shù)標注 121
3.1.5 遞歸 122
3.1.6 lambda表達式 125
練習3.1 125
3.2 Python異常處理 129
3.2.1 異常處理的基本思路與異常類型 129
3.2.2 try-except語句 131
3.2.3 異常類型的層次結(jié)構(gòu) 133
3.2.4 else子句與finally子句 133
3.2.5 異常的人工觸發(fā):raise與assert 134
練習3.2 135
3.3 Python命名空間與作用域 136
3.3.1 Python命名空間 136
3.3.2 Python作用域 139
3.3.3 Python名字解析的LEGB規(guī)則 144
練習3.3 145
第4章 面向類的程序設計 147
4.1 類及其組成 147
4.1.1 類模型與類語法 147
4.1.2 對象的生成與_ _init_ _ ()方法 150
4.1.3 最小特權(quán)原則與成員訪問限制 152
4.1.4 實例方法、靜態(tài)方法與類方法 155
練習4.1 157
4.2 Python類的內(nèi)置屬性、方法與函數(shù) 158
4.2.1 類的內(nèi)置屬性 158
4.2.2 獲取類與對象特征的內(nèi)置函數(shù) 160
4.2.3 操作符重載 163
4.2.4 Python類屬性配置與管理內(nèi)置方法 166
練習4.2 173
4.3 類的繼承 175
4.3.1 類的繼承及其關(guān)系測試 176
4.3.2 新式類與object 178
4.3.3 子類訪問父類成員的規(guī)則 180
4.3.4 子類實例的初始化與super 180
練習4.3 185
第5章 Python GUI開發(fā) 188
5.1 組件、布局與事件處理 188
5.1.1 組件 188
5.1.2 布局與布局管理器 192
5.1.3 事件綁定與事件處理 195
練習5.1 200
5.2 GUI程序結(jié)構(gòu) 201
5.2.1 基于tkinter的GUI開發(fā)環(huán)節(jié) 201
5.2.2 面向?qū)ο蟮腉UI程序框架 204
練習5.2 206
5.3 GUI制作示例 206
5.3.1 Label與Button 207
5.3.2 Entry與Message 213
5.3.3 Text與滾動條 217
5.3.4 選擇框 224
5.3.5 菜單 230
練習5.3 233
第6章 Python應用開發(fā)舉例 234
6.1 Python數(shù)據(jù)庫操作 234
6.1.1 數(shù)據(jù)庫與SQL 234
6.1.2 用pyodbc訪問數(shù)據(jù)庫 235
6.1.3 SQLite3數(shù)據(jù)庫 242
練習6.1 244
6.2 Python Socket編程 245
6.2.1 TCP/IP與Socket 245
6.2.2 Socket模塊與Socket對象 249
6.2.3 TCP的Python Socket編程 251
6.2.4 UDP的Python Socket編程 254
練習6.2 256
6.3 Python WWW應用開發(fā) 258
6.3.1 WWW及其關(guān)鍵技術(shù) 258
6.3.2 urllib模塊庫 264
6.3.3 urllib.parse模塊與URL解析 266
6.3.4 urllib.request模塊與網(wǎng)頁抓取 267
6.3.5 網(wǎng)頁提交表單 270
6.3.6 urllib.error模塊與異常處理 271
6.3.7 webbrowser模塊 272
練習6.3 273
附錄 275
附錄A Python內(nèi)置函數(shù) 275
A.1 數(shù)學運算 275
A.2 邏輯判斷 275
A.3 容器操作 276
A.4 字符串相關(guān) 276
A.5 類型轉(zhuǎn)換 278
A.6 I/O操作 278
A.7 反射相關(guān) 278
A.8 其他 280
附錄B Python 3.0標準異常類結(jié)構(gòu)(PEP 348) 280
附錄C 文件與目錄管理 281
C.1 文件訪問函數(shù) 281
C.2 目錄操作 282
C.3 獲取或判斷文件和路徑屬性的函數(shù) 282
C.4 路徑操作 283
C.5 文件壓縮(zipfile模塊) 283
C.6 文件復制(shutil模塊) 285
附錄D Python標準模塊庫目錄 285
D.1 文本 285
D.2 二進制數(shù)據(jù) 286
D.3 數(shù)據(jù)類型 286
D.4 數(shù)學 286
D.5 函數(shù)式編程 286
D.6 文件與目錄 286
D.7 持久化 287
D.8 壓縮 287
D.9 文件格式化 287
D.10 加密 287
D.11 操作系統(tǒng)工具 287
D.12 并發(fā)與并行 288
D.13 進程間通信 288
D.14 互聯(lián)網(wǎng)相關(guān) 288
D.15 HTML與XML 289
D.16 互聯(lián)網(wǎng)協(xié)議與支持 289
D.17 多媒體 290
D.18 國際化 290
D.19 編程框架 290
D.20 Tk圖形用戶接口 290
D.21 開發(fā)工具 291
D.22 調(diào)試 291
D.23 運行時 291
D.24 解釋器 291
D.25 導入模塊 292
D.26 Python語言 292
D.27 其他 292
D.28 Windows相關(guān) 292
D.29 UNIX相關(guān) 292
參考文獻 294