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