Python程序設(shè)計(jì)基礎(chǔ)及實(shí)踐(慕課版)
定 價(jià):59.8 元
- 作者: 郭煒 著
- 出版時(shí)間:2021/9/1
- ISBN:9787115567529
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁(yè)碼:276
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
本書(shū)是一部零基礎(chǔ)、高標(biāo)準(zhǔn),大廣度、重實(shí)踐的Python編程從入門(mén)到熟練的教材。本書(shū)覆蓋面非常廣,包括計(jì)算機(jī)基礎(chǔ)常識(shí)、Python語(yǔ)言的基本要素、基本運(yùn)算和條件分支語(yǔ)句、循環(huán)語(yǔ)句、函數(shù)、遞歸、復(fù)雜數(shù)據(jù)類型、計(jì)算思維、文件讀寫(xiě)、正則表達(dá)式、玩轉(zhuǎn)Python生態(tài)、數(shù)據(jù)分析和可視化、網(wǎng)絡(luò)爬蟲(chóng)、面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)、tkinter圖形界面程序設(shè)計(jì)等內(nèi)容。正則表達(dá)式、網(wǎng)絡(luò)爬蟲(chóng)、圖形界面等都是其他大多數(shù)Python基礎(chǔ)教材不涉及的內(nèi)容。對(duì)Python第三方庫(kù)的使用,講述尤其全面,涵蓋數(shù)據(jù)分析庫(kù)NumPy和pandas、數(shù)據(jù)庫(kù)編程庫(kù)SQLite3、圖像處理庫(kù)Pillow、Excel文檔處理庫(kù)OpenPyXL、統(tǒng)計(jì)繪圖庫(kù)Matplotlib、分詞庫(kù)Jieba等。還專門(mén)用一章的篇幅講述計(jì)算思維,讓讀者了解計(jì)算的本質(zhì)、時(shí)間復(fù)雜度、數(shù)據(jù)結(jié)構(gòu)等概念。這些內(nèi)容,都不是蜻蜓點(diǎn)水,而是深入淺出。
本書(shū)適合高等院校各專業(yè)學(xué)習(xí)Python使用。文、理、藝術(shù)等各類專業(yè)的零基礎(chǔ)學(xué)生可以掌握并用到本書(shū)80%的內(nèi)容;對(duì)編程有較高需求的理科生,可以進(jìn)一步再多學(xué)15%;余下5%則基本是計(jì)算機(jī)專業(yè)學(xué)生才需要了解的。但即便是計(jì)算機(jī)專業(yè)的學(xué)生,也非常適合使用本書(shū)來(lái)快速掌握Python語(yǔ)法及各種庫(kù)的使用。
本書(shū)配套電子資料十分齊全,包括程序源代碼、重點(diǎn)難點(diǎn)講解視頻、課程講義等,此外,作者在中國(guó)大學(xué)慕課開(kāi)設(shè)的“實(shí)用Python程序設(shè)計(jì)”課程,提供了覆蓋全書(shū)90%內(nèi)容的視頻講解。
一、零基礎(chǔ)。
本書(shū)對(duì)零基礎(chǔ)學(xué)習(xí)者非常友好。除了內(nèi)容從零開(kāi)始,本書(shū)還特意指出了教學(xué)中收集的零基礎(chǔ)學(xué)習(xí)者常犯的各種真實(shí)錯(cuò)誤。有了本書(shū)遍布各處的“常見(jiàn)錯(cuò)誤”提示。
二、高標(biāo)準(zhǔn)。
本書(shū)的大部分例題和習(xí)題,來(lái)自北京大學(xué)在線程序評(píng)測(cè)平臺(tái)openjudge.cn,該平臺(tái)包含兩萬(wàn)多道編程題,程序提交后會(huì)自動(dòng)評(píng)判對(duì)錯(cuò)。
以本書(shū)作為教材的教師,還可以在openjudge.cn上申請(qǐng)建立自己的教學(xué)組,自行利用平臺(tái)上的題目或自己上傳的題目,在平臺(tái)上布置作業(yè)和考試。
三、大廣度。
本書(shū)覆蓋面非常廣。除了基本的Python語(yǔ)法,還包括正則表達(dá)式、網(wǎng)絡(luò)爬蟲(chóng)、圖形界面等許多Python教材不涉及的內(nèi)容。對(duì)Python第三方庫(kù)的使用,更是比大多數(shù)教材介紹更多,涵蓋數(shù)據(jù)分析庫(kù)NumPy和pandas、數(shù)據(jù)庫(kù)編程庫(kù)sqlite3、圖像處理庫(kù)Pillow、Excel文檔處理庫(kù)openpyxl、統(tǒng)計(jì)繪圖庫(kù)Matplotlib、分詞庫(kù)jieba等。并且專門(mén)用一章的篇幅講述計(jì)算思維,讓讀者了解計(jì)算的本質(zhì)、時(shí)間復(fù)雜度、數(shù)據(jù)結(jié)構(gòu)等概念。本書(shū)這些內(nèi)容,都不是蜻蜓點(diǎn)水,而是深入淺出。
四、重實(shí)踐。
本書(shū)非常適合非計(jì)算機(jī)專業(yè)人士使用。非計(jì)算機(jī)專業(yè)人士,工作中要用編程解決的問(wèn)題,不外乎獲取數(shù)據(jù)、分析數(shù)據(jù)、處理數(shù)據(jù),并將數(shù)據(jù)分析和處理的結(jié)果展示出來(lái)。本書(shū)內(nèi)容,一半打基礎(chǔ),另一半圍繞數(shù)據(jù)的獲取、分析、處理和展示這四點(diǎn)展開(kāi),具有極強(qiáng)的實(shí)用性。數(shù)學(xué)、中文、外語(yǔ)、經(jīng)濟(jì)、美術(shù)等各專業(yè)人士,能在書(shū)中找到貼合本專業(yè)的程序案例。若不在意對(duì)算法涉及較少,本書(shū)也非常適合計(jì)算機(jī)專業(yè)人士用來(lái)快速掌握Python語(yǔ)法及各種庫(kù)的使用。
本書(shū)章節(jié)標(biāo)題或者習(xí)題,帶有\(zhòng)"*\"標(biāo)記的,是較難內(nèi)容,適用于理科讀者,文科專業(yè)讀者不需掌握;帶有\(zhòng)"**\"標(biāo)記的,則面向計(jì)算機(jī)專業(yè)讀者,非計(jì)算機(jī)專業(yè)的讀者不需掌握。
五、資源全
本書(shū)配套電子資料十分齊全,包括課程講義以及170多個(gè)精心編寫(xiě)、風(fēng)格簡(jiǎn)潔優(yōu)美的程序源碼、還有重點(diǎn)難點(diǎn)的講解視頻。作者在中國(guó)大學(xué)慕課開(kāi)設(shè)的《實(shí)用Python程序設(shè)計(jì)》課程,提供了覆蓋全書(shū)90%內(nèi)容的視頻講解。書(shū)中重難點(diǎn)部分有二維碼,掃碼即可看相應(yīng)講解視頻。
郭煒 北京大學(xué)信息學(xué)院教師,擔(dān)任北京大學(xué)ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽隊(duì)教練多年,曾6次為ACM-ICPC亞洲區(qū)預(yù)選賽命題。 研究方向:計(jì)算機(jī)輔助教學(xué),北京角斗士軟件技術(shù)有限公司創(chuàng)始人,開(kāi)發(fā)多款英語(yǔ)學(xué)習(xí)軟件。
第1章 計(jì)算機(jī)基礎(chǔ)常識(shí)
1.1 信息在計(jì)算機(jī)中的表示和存儲(chǔ) 1
1.1.1 用0和1表示信息 1
1.1.2 二進(jìn)制和十六進(jìn)制 2
1.2 計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言 4
1.2.1 機(jī)器語(yǔ)言 4
1.2.2 匯編語(yǔ)言 5
1.2.3 高級(jí)語(yǔ)言 5
1.2.4 Python簡(jiǎn)史 6
1.3 習(xí)題 7
第2章 Python語(yǔ)言的基本要素
2.1 Python開(kāi)發(fā)環(huán)境的搭建 8
2.2 Python的語(yǔ)句 9
2.3 注釋 10
2.4 常量 11
2.5 變量 12
2.6 賦值語(yǔ)句 12
2.7 Python數(shù)據(jù)類型 14
2.8 字符串簡(jiǎn)介 14
2.8.1 字符串的基本概念 14
2.8.2 字符串的下標(biāo) 15
2.8.3 連接字符串 15
2.8.4 用“in”“not in”判斷子串 16
2.8.5 字符串和數(shù)值的轉(zhuǎn)換 16
2.9 輸入和輸出 17
2.9.1 輸出語(yǔ)句print 17
2.9.2 輸入語(yǔ)句input 17
2.9.3 輸出格式控制 19
2.10 列表簡(jiǎn)介 20
2.10.1 列表的基本概念 20
2.10.2 字符串分割成列表 20
2.11 常見(jiàn)語(yǔ)法錯(cuò)誤排查 21
2.12 OpenJudge做題指南及例題講解 21
2.13 習(xí)題 25
第3章 基本運(yùn)算和條件分支語(yǔ)句
3.1 算術(shù)運(yùn)算 26
3.2 關(guān)系運(yùn)算和bool類型 28
3.3 邏輯運(yùn)算 30
3.4 運(yùn)算符的優(yōu)先級(jí) 31
3.5 條件分支語(yǔ)句 32
3.6 條件分支語(yǔ)句例題 33
3.7 習(xí)題 40
第4章 循環(huán)語(yǔ)句
4.1 for循環(huán)語(yǔ)句 41
4.2 break語(yǔ)句和continue語(yǔ)句 45
4.3 多重循環(huán) 45
4.4 while循環(huán)語(yǔ)句 48
4.5 異常處理 51
4.6 循環(huán)綜合例題 53
4.7 調(diào)試程序的方法 57
4.8 習(xí)題 58
第5章 函數(shù)
5.1 函數(shù)概述 59
5.2 全局變量和局部變量 62
★5.3 參數(shù)個(gè)數(shù)可變的函數(shù) 63
5.4 函數(shù)參數(shù)的默認(rèn)值 64
5.5 Python的庫(kù)函數(shù) 64
5.6 lambda表達(dá)式 65
★★5.7 高階函數(shù)和閉包 66
★★★5.8 生成器 67
5.9 習(xí)題 69
第6章 遞歸
6.1 遞歸的基本概念 70
6.2 先做一步再遞歸:上臺(tái)階問(wèn)題 72
★6.3 問(wèn)題分解:漢諾塔問(wèn)題 72
★★6.4 遞歸替代循環(huán):N皇后問(wèn)題 76
★6.5 遞歸繪制分形圖案:繪制雪花曲線 78
6.6 習(xí)題 81
第7章 復(fù)雜數(shù)據(jù)類型
7.1 Python變量的指針本質(zhì) 82
7.2 字符串詳解 85
7.2.1 轉(zhuǎn)義字符 85
7.2.2 三單引號(hào)和三雙引號(hào)字符串 86
7.2.3 在字符串中使用編碼代替字符 87
7.2.4 字符串的切片 88
7.2.5 字符串的分割 88
7.2.6 字符串的成員函數(shù) 89
7.2.7 字符串的格式化 91
7.2.8 f-string 92
7.3 元組 92
7.3.1 元組的基本概念 92
7.3.2 元組的操作 94
7.4 列表詳解 95
7.4.1 列表基礎(chǔ)用法 95
7.4.2 列表的成員函數(shù) 98
7.4.3 列表的排序 99
7.4.4 列表的映射和過(guò)濾 103
7.4.5 列表生成式 104
★7.4.6 二維列表 105
★7.4.7 列表的復(fù)制 107
7.4.8 列表、元組和字符串的互相轉(zhuǎn)換 109
7.5 字典 109
7.5.1 字典的基本概念 109
7.5.2 字典的函數(shù) 111
7.5.3 字典例題:?jiǎn)卧~出現(xiàn)頻率統(tǒng)計(jì) 112
7.6 集合 113
7.7 自定義數(shù)據(jù)類型:類 116
7.8 習(xí)題 118
第8章 計(jì)算思維
8.1 計(jì)算機(jī)的本質(zhì) 121
8.2 計(jì)算機(jī)解決問(wèn)題的基本方法—窮舉 122
★8.3 程序或算法的時(shí)間復(fù)雜度 123
8.4 有序就能找得快 127
8.5 習(xí)題 128
第9章 文件讀寫(xiě)
9.1 概述 129
9.2 文本文件的編碼 130
9.3 讀寫(xiě)文本文件 132
9.4 文件的相對(duì)路徑和絕對(duì)路徑 134
★9.5 文件夾的操作 135
★9.6 命令行參數(shù) 137
★9.7 文本文件處理綜合實(shí)例 138
9.8 數(shù)據(jù)交換文件格式csv 141
★9.9 數(shù)據(jù)交換字符串格式JSON 142
★★★9.10 字節(jié)流和字符串的互相轉(zhuǎn)換 143
★★★9.11 二進(jìn)制文件的讀寫(xiě) 144
9.12 習(xí)題 148
第10章 正則表達(dá)式
10.1 功能字符和字符組合 149
10.2 查找匹配的子串 153
10.3 邊界符號(hào) 155
10.4 匹配選項(xiàng) 156
10.5 分組 157
10.6 '|' 的用法 160
★★10.7 替換匹配的子串 161
10.8 貪婪匹配和懶惰匹配 162
★★★10.9 條件匹配 163
★★★10.10 斷言 164
10.11 字符串分割 167
10.12 應(yīng)用實(shí)例 167
10.13 習(xí)題 168
第11章 玩轉(zhuǎn)Python生態(tài)
11.1 Python庫(kù)的安裝、導(dǎo)入和使用 170
11.2 日期和時(shí)間庫(kù)datetime 172
11.3 隨機(jī)庫(kù)random 173
★11.4 用OpenPyXL庫(kù)處理Excel文檔 174
★★★11.5 SQLite3數(shù)據(jù)庫(kù)編程 179
11.5.1 數(shù)據(jù)庫(kù)的結(jié)構(gòu) 179
11.5.2 SQL數(shù)據(jù)庫(kù)查詢語(yǔ)句 179
11.6 jieba分詞庫(kù) 184
★★11.7 圖像處理庫(kù)PIL 186
11.7.1 圖像的基本變換 187
11.7.2 圖像的裁剪 188
11.7.3 圖像的素描化 189
★★★11.7.4 給圖像添加水印 190
★★★11.7.5 照片的exif信息及在圖像上繪圖和寫(xiě)字 192
11.8 多模塊程序設(shè)計(jì) 194
11.9 Python程序的打包分發(fā) 197
11.10 習(xí)題 197
第12章 數(shù)據(jù)分析和可視化
12.1 多維數(shù)組庫(kù)NumPy 199
12.2 數(shù)據(jù)分析庫(kù)pandas 203
12.3 用Matplotlib繪制統(tǒng)計(jì)圖 210
12.3.1 繪制柱狀圖 210
12.3.2 繪制折線圖和散點(diǎn)圖 214
12.3.3 繪制餅圖 215
12.3.4 繪制熱力圖 215
12.3.5 繪制雷達(dá)圖 216
12.3.6 繪制面積圖 218
★★12.3.7 多子圖繪圖 219
12.4 習(xí)題 220
第13章 網(wǎng)絡(luò)爬蟲(chóng)
13.1 基礎(chǔ)爬蟲(chóng)四步走 221
13.2 網(wǎng)頁(yè)獲取三招式 225
13.3 用BeautifulSoup分析網(wǎng)頁(yè) 228
13.4 用pyppeteer爬取JavaScript動(dòng)態(tài)生成的網(wǎng)頁(yè) 232
★★13.5 用pyppeteer爬取需要登錄的網(wǎng)站 233
★★★13.6 用pyppeteer+requests編寫(xiě)快速爬蟲(chóng) 239
13.7 如何對(duì)付反爬蟲(chóng)措施 241
13.8 習(xí)題 241
第14章 面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)
14.1 結(jié)構(gòu)化程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì) 242
14.2 Python中的類 243
14.3 對(duì)象的比較 245
14.4 輸出對(duì)象 246
14.5 繼承和派生 247
14.6 靜態(tài)屬性和靜態(tài)方法 249
14.7 對(duì)象作為集合元素或字典的鍵 250
第15章 tkinter圖形界面程序設(shè)計(jì)
15.1 控件概述 253
15.2 圖形界面的布局 255
15.3 為控件綁定狀態(tài)變量和事件響應(yīng)函數(shù) 258
15.4 綜合示例—Python火鍋店點(diǎn)菜系統(tǒng) 262
15.5 對(duì)話框 266
15.6 菜單和多行編輯框示例 270
★★15.7 在圖形界面中用Matplotlib繪制統(tǒng)計(jì)圖和顯示圖像 272
★★15.8 Notebook、PanedWindow和TreeView控件 275
15.9 習(xí)題 276