本書以Python的實際應(yīng)用為主線,以理論基礎(chǔ)為核心,引導(dǎo)讀者漸進式學(xué)習(xí)Python的編程基礎(chǔ)和實際應(yīng)用。 本書共17章,可分為4部分。第一部分Python編程環(huán)境搭建和Python的基礎(chǔ)知識(第1~6章)、第二部分數(shù)學(xué)運算(第7~9章)、第三部分繪制圖像(第10~12章)、第四部分辦公自動化(第13~17章)。 本書示例代碼豐富,實用性和系統(tǒng)性較強,并配有視頻講解,助力讀者透徹理解書中的重點、難點。本書既適合初學(xué)者入門,精心設(shè)計的案例對于工作多年的開發(fā)者也有參考價值,并可作為高等院校和培訓(xùn)機構(gòu)相關(guān)專業(yè)的教學(xué)參考書。
本書是一本基礎(chǔ)入門加實戰(zhàn)的書籍,既有基礎(chǔ)知識,又有豐富的典型案例。這些典型案例貼近工作、學(xué)習(xí)、生活,應(yīng)用性強。本書示例代碼豐富,實用性和系統(tǒng)性較強,并配有視頻講解,助力讀者透徹理解書中的重點、難點。
Python作為一門優(yōu)秀的編程語言,由于其語法簡潔、優(yōu)雅、明確,因此受到很多程序員和編程愛好者的青睞。近年來,Python憑借強大的擴展性和豐富的模塊,其應(yīng)用場景不斷擴大。許多人加入了學(xué)習(xí)Python的行列。
也許會有人問: 對于沒有編程基礎(chǔ)的人,編程會不會太難學(xué)了?其實這樣的擔心是多余的。Python的語法簡潔易懂,很容易上手,而且學(xué)習(xí)Python的目的不是為了編程而編程,而是為了解決實際的問題。在掌握Python編程的基礎(chǔ)知識后,就可以用Python解決學(xué)習(xí)和工作中的實際問題,例如復(fù)雜的數(shù)學(xué)運算、繪制各類圖像、辦公自動化,而且有時只需幾行到十幾行的代碼就可實現(xiàn)。
本書有豐富的案例,將語法知識和編程思路融入大量的典型案例中,帶領(lǐng)讀者學(xué)會Python編程,并將Python應(yīng)用于解決實際問題中,從而提高工作效率。
本書主要內(nèi)容
本書分為四部分,共17章。
第一部分包括第1~6章,主要講解了Python編程環(huán)境的搭建和Python的基礎(chǔ)知識,以及變量、運算、流程控制; 在懂得基本編程思路之后,講解了函數(shù)、復(fù)雜數(shù)據(jù)類型、類、模塊等編程模塊化知識,其中的難點是第4章的復(fù)雜數(shù)據(jù)類型,包括列表、元組、字典、字符串、集合等。
第二部分包括第7~9章,主要講解了應(yīng)用Python進行數(shù)值計算、矩陣運算、符號運算的方法。
第三部分包括第10~12章,主要講解了應(yīng)用Python繪制各種2D圖像、3D圖像及向量圖的方法。
第四部分包括第13~17章,主要講解了應(yīng)用Python處理基本文件、操作目錄、組織文件、壓縮文件、解壓文件、處理PDF文檔、破解密碼、處理Word文檔的方法。這一部分列舉了使用Python批量處理文件的方法。
閱讀建議
本書是一本基礎(chǔ)入門加實戰(zhàn)的書籍,既有基礎(chǔ)知識,又有豐富的典型案例。這些典型案例貼近工作、學(xué)習(xí)、生活,應(yīng)用性強。
建議沒有Python基礎(chǔ)的讀者先閱讀第一部分,掌握Python的基本語法知識。這些知識集中在第1~5章。有了這些知識,閱讀后面的章節(jié)會比較輕松。如果讀者已經(jīng)具備Python的知識,則可以直接閱讀后面的章節(jié)。
閱讀第二部分需要具有一些數(shù)學(xué)知識和概念,包括基本的數(shù)值計算、復(fù)數(shù)的數(shù)值計算、矩陣的各類運算、統(tǒng)計學(xué)、微積分的各類運算。
第三部分屬于比較輕松的內(nèi)容,使用Python時只需幾行到十幾行的代碼,就可以繪制出漂亮的2D圖、3D圖、向量圖。
第四部分屬于應(yīng)用性很強的內(nèi)容,有很多典型案例。這一部分的每個章節(jié)都有統(tǒng)一的編寫規(guī)律,先介紹了處理單個文件的方法,然后介紹批量處理文件的方法。典型案例的難點在破解壓縮文件密碼和PDF文檔密碼的部分。第14章前兩節(jié)介紹了使用面向過程的方法處理目錄、文件的方法,第三節(jié)介紹了使用面向?qū)ο蟮姆椒ㄌ幚砟夸、文件的方法?/p>
資源下載提示
素材(源碼)等資源: 掃描目錄上方的二維碼下載。
視頻等資源: 掃描封底的文泉云盤防盜碼,再掃描書中相應(yīng)章節(jié)的二維碼,可以在線學(xué)習(xí)。
致謝
感謝我的家人、朋友,由于有了他們的支持,我才可以全身心地投入寫作之中。
感謝趙佳霓編輯,在書稿的編寫過程中為我提供了很多建議,沒有她的策劃和幫助,我難以順利完成本書。
感謝我的導(dǎo)師、老師、同學(xué),在我的求學(xué)過程中,他們曾經(jīng)給我很大的幫助。
感謝為本書付出辛勤工作的每個人!
由于編者水平有限,書中難免存在不妥之處,請讀者見諒,并提出寶貴意見。
邢世通
2023年5月
邢世通,物理學(xué)學(xué)士,光學(xué)工程碩士。編程研究者,熟悉Python、C、C 、PHP、JavaScript語言、MATLAB等編程技術(shù)。擁有數(shù)學(xué)、Python的教學(xué)經(jīng)驗。參與過光子計數(shù)測量系統(tǒng)軟件開發(fā)、動態(tài)光散射的自相關(guān)數(shù)據(jù)算法、網(wǎng)站開發(fā)與安全維護等項目,有兩項國家實用新型專利(第一作者)、兩篇EI檢索論文(第一作者)。
第一部分基 礎(chǔ) 知 識
第1章Python概述(29min)
1.1Python的歷史與發(fā)展
1.1.1Python簡介
1.1.2Python與Java、C語言的對比
1.1.3Python的應(yīng)用領(lǐng)域
1.2搭建Python開發(fā)環(huán)境
1.2.1安裝Python
1.2.2第1個Python程序
1.2.3文本編輯器
1.2.4集成開發(fā)環(huán)境
1.3人人都會編程
1.3.1input()函數(shù)和變量
1.3.2會說話就會編程
1.4小結(jié)
第2章Python基礎(chǔ)(56min)
2.1變量
2.1.1理解變量
2.1.2定義變量
2.1.3判斷變量的類型
2.1.4變量的地址
2.2基本數(shù)據(jù)類型
2.2.1數(shù)字類型
2.2.2字符串類型
2.2.3布爾類型
2.2.4數(shù)據(jù)類型轉(zhuǎn)換
2.3運算符
2.3.1算術(shù)運算符
2.3.2賦值運算符
2.3.3比較(關(guān)系)運算符
2.3.4邏輯運算符
2.3.5位運算符
2.3.6運算符的優(yōu)先級
2.4小結(jié)
第3章流程控制語句(85min)
3.1控制結(jié)構(gòu)
3.2選擇語句
3.2.1if語句
3.2.2if…else語句
3.2.3if…elif…else語句
3.2.4if語句的嵌套
3.2.5條件表達式
3.3循環(huán)語句
3.3.1while循環(huán)
3.3.2for循環(huán)
3.3.3循環(huán)嵌套
3.4其他控制語句
3.4.1break語句
3.4.2continue語句
3.4.3pass空語句
3.5經(jīng)典例題
3.5.1過橋問題
3.5.2百錢買百雞
3.6本章小結(jié)
第4章函數(shù)與復(fù)雜數(shù)據(jù)類型(225min)
4.1函數(shù)
4.1.1函數(shù)的創(chuàng)建和調(diào)用
4.1.2參數(shù)的傳遞
4.1.3返回值
4.1.4變量的作用域
4.1.5匿名函數(shù)(lambda)
4.1.6經(jīng)典例題
4.2列表與元組
4.2.1創(chuàng)建和刪除列表
4.2.2添加、修改、刪除列表中的元素
4.2.3遍歷列表
4.2.4對列表進行排序
4.2.5對列表進行統(tǒng)計和計算
4.2.6元組
4.2.7經(jīng)典例題
4.3字典
4.3.1創(chuàng)建和刪除字典
4.3.2添加、修改、刪除字典中的元素
4.3.3遍歷字典
4.3.4字典與列表的嵌套
4.4集合
4.4.1創(chuàng)建和刪除集合
4.4.2添加、刪除集合中的元素
4.4.3集合的交集、并集、差集運算
4.4.4列表、元組、字典、集合的對比
4.5字符串
4.5.1字符串的常用操作
4.5.2字符串編碼轉(zhuǎn)換
4.5.3序列
4.6小結(jié)
第5章對象與模塊(110min)
5.1面向?qū)ο蟮某绦蛟O(shè)計
5.1.1對象=屬性 行為
5.1.2類
5.1.3面向?qū)ο蟪绦蛟O(shè)計的特點
5.2類的定義和使用
5.2.1定義一個簡單的類
5.2.2創(chuàng)建類的實例
5.2.3定義一個完整的類
5.2.4類的數(shù)據(jù)成員
5.2.5訪問限制
5.3繼承與導(dǎo)入
5.3.1繼承的基本語法
5.3.2派生類中調(diào)用基類的__init__()方法
5.3.3方法重寫
5.3.4導(dǎo)入類
5.4模塊
5.4.1模塊概述
5.4.2安裝、升級、卸載模塊
5.4.3引入模塊
5.4.4創(chuàng)建主程序
5.4.5自定義模塊
5.5小結(jié)
第6章異常處理(71min)
6.1異常概述
6.1.1常見的異常
6.1.2其他異常
6.2異常處理語句
6.2.1try…except語句
6.2.2try…except…else語句
6.2.3try…except…finally語句
6.2.4使用raise語句拋出異常
6.3程序調(diào)試
6.3.1使用assert語句調(diào)試程序
6.3.2使用IDLE進行斷點調(diào)試
6.4小結(jié)
第二部分數(shù) 學(xué) 運 算
第7章數(shù)值計算(42min)
7.1標準模塊
7.1.1Math模塊
7.1.2cMath模塊
7.2NumPy模塊
7.2.1安裝NumPy
7.2.2NumPy的數(shù)學(xué)函數(shù)
7.3小結(jié)
第8章矩陣運算(86min)
8.1創(chuàng)建矩陣和數(shù)組
8.1.1使用NumPy創(chuàng)建矩陣
8.1.2創(chuàng)建特殊矩陣
8.1.3NumPy的切片和索引
8.2矩陣的簡單運算
8.2.1矩陣與數(shù)的運算
8.2.2矩陣與矩陣的加、減、乘運算
8.3矩陣的復(fù)雜運算
8.3.1矩陣的逆
8.3.2矩陣的行列式
8.3.3矩陣的特征值和特征向量
8.3.4解線性方程組
8.4統(tǒng)計數(shù)組、矩陣
8.4.1最小值和最大值
8.4.2中位數(shù)和平均數(shù)
8.4.3標準差和方差
8.5NumPy的矩陣庫Matrix
8.5.1轉(zhuǎn)置矩陣
8.5.2使用矩陣庫創(chuàng)建矩陣
8.6小結(jié)
第9章符號運算(123min)
9.1SymPy模塊
9.1.1安裝SymPy模塊
9.1.2創(chuàng)建符號變量
9.1.3轉(zhuǎn)換為LaTeX格式
9.1.4替換表達式中的符號變量
9.1.5對表達式進行數(shù)值計算
9.2代數(shù)式的簡單運算
9.2.1代數(shù)式的加、減、乘、除
9.2.2代數(shù)式的化簡
9.2.3代數(shù)式的合并和展開
9.3微積分運算
9.3.1極限
9.3.2一階微分與高階微分
9.3.3不定積分與定積分
9.3.4級數(shù)展開
9.4求解線性方程和微分方程
9.4.1解線性方程
9.4.2解微分方程
9.5SymPy矩陣
9.5.1數(shù)字矩陣
9.5.2符號矩陣
9.6小結(jié)
第三部分繪 制 圖 像
第10章繪制2D圖像(117min)
10.1Matplotlib模塊
10.1.1安裝Matplotlib模塊
10.1.2繪制簡單的折線圖
10.2圖像的標記與設(shè)置
10.2.1標記數(shù)據(jù)點
10.2.2設(shè)置線條
10.2.3設(shè)置軸標簽和標題
10.2.4顯示中文
10.2.5設(shè)置網(wǎng)格線
10.3圖像中繪制多條線與多張圖
10.3.1一維數(shù)據(jù)繪制多條線
10.3.2二維數(shù)據(jù)繪制多條線
10.3.3繪制多張圖
10.3.4應(yīng)用舉例
10.4繪制其他類型的圖像
10.4.1散點圖
10.4.2餅圖
10.4.3柱狀圖
10.4.4頻率分布直方圖
10.4.5面積圖
10.4.6熱力圖
10.4.7箱形圖
10.5經(jīng)典例題
10.5.1繪制橢圓
10.5.2繪制雙曲線
10.6等高線圖
10.6.1填充顏色
10.6.2添加等高線并顯示數(shù)據(jù)標簽
10.7小結(jié)
第11章繪制3D圖像(99min)
11.13D曲線圖
11.1.1設(shè)置圖像的大小
11.1.2創(chuàng)建3D坐標系
11.1.3繪制3D曲線圖
11.1.4添加標簽和標題
11.23D散點圖
11.2.1繪制3D散點圖
11.2.2同一坐標系下繪制多張3D圖
11.33D等高線圖
11.3.1繪制3D等高線圖
11.3.2調(diào)整觀察角度和方位角
11.43D線框圖
11.4.1繪制3D線框圖
11.4.2繪制多張3D圖
11.53D曲面圖
11.5.1繪制3D曲面圖
11.5.2極坐標系下繪制3D圖
11.5.3經(jīng)典例題
11.5.4繪制三角表面圖
11.63D條形圖
11.7小結(jié)
第12章向量圖(113min)
12.1Pygal模塊
12.1.1Python中的繪圖模塊
12.1.2安裝Pygal模塊
12.2折線圖
12.2.1簡單折線圖
12.2.2水平折線圖
12.2.3堆疊折線圖
12.3柱狀圖
12.3.1單列柱狀圖
12.3.2堆疊柱狀圖
12.3.3水平柱狀圖
12.3.4水平堆疊柱狀圖
12.3.5直方圖
12.4餅圖
12.4.1簡單餅圖
12.4.2多級餅圖
12.4.3圓環(huán)圖
12.4.4半餅圖
12.5其他類型的圖像
12.5.1散點圖
12.5.2曲線圖
12.5.3雷達圖
12.5.4氣泡圖
12.5.5箱形圖
12.5.6漏斗圖
12.5.7實體儀表盤圖
12.5.8儀表盤圖
12.5.9樹形圖
12.5.10金字塔圖
12.6小結(jié)
第四部分辦公自動化
第13章基本文件操作(34min)
13.1打開、關(guān)閉、讀取、寫入文件
13.1.1創(chuàng)建文件對象
13.1.2關(guān)閉文件
13.1.3寫入文件
13.1.4讀取文件
13.2其他操作文件的方法
13.2.1文件對象方法匯總
13.2.2with語句
13.3典型應(yīng)用
13.3.1批量創(chuàng)建TXT文檔
13.3.2批量為TXT文檔寫入內(nèi)容
13.3.3統(tǒng)計TXT文檔中字符的個數(shù)
13.4小結(jié)
第14章目錄操作與組織文件(65min)
14.1os模塊與目錄操作
14.1.1文件與文件路徑
14.1.2os模塊與os.path模塊
14.1.3操作目錄
14.1.4操作文件
14.2shutil模塊與文件操作
14.2.1復(fù)制文件和文件夾
14.2.2文件和文件夾的移動和重命名
14.2.3永久刪除文件和文件夾
14.2.4安全刪除文件和文件夾
14.3pathlib模塊
14.3.1Path類和PurePath類
14.3.2獲取路徑對象的屬性
14.3.3遍歷目錄
14.3.4文件和文件夾的創(chuàng)建和刪除
14.3.5拼接路徑
14.4典型應(yīng)用
14.4.1批量給文件名添加、刪除前綴
14.4.2批量給文件名添加、刪除后綴
14.4.3文件的自動分類
14.4.4自動清理重復(fù)文件
14.4.5文件和文件夾的快速查找
14.5小結(jié)
第15章壓縮文件(64min)
15.1zipfile模塊與zip文件
15.1.1zipfile模塊
15.1.2解壓文件
15.1.3創(chuàng)建、添加zip文件
15.1.4批量創(chuàng)建、解壓zip文件
15.1.5破解zip文件的密碼
15.2rarfile模塊與rar文件
15.2.1rarfile模塊
15.2.2讀取、解壓rar文件
15.2.3批量解壓rar文件
15.3py7zr模塊與7z文件
15.3.1py7zr模塊
15.3.2解壓7z文件
15.3.3創(chuàng)建、添加7z文件
15.3.4批量創(chuàng)建、解壓7z文件
15.3.5破解7z文件的密碼
15.4小結(jié)
第16章處理PDF文檔(55min)
16.1PyPDF2模塊
16.1.1獲取PDF文檔信息
16.1.2從PDF中提取某一頁的文本
16.1.3合并PDF文檔
16.1.4從PDF文檔截取部分文檔
16.1.5拆分PDF文檔
16.1.6加密PDF文檔
16.1.7破解PDF文檔的密碼
16.2pdfplumber模塊
16.2.1獲取PDF文檔信息
16.2.2從PDF中提取某頁的表格
16.3reportlab模塊
16.3.1創(chuàng)建加水印文件
16.3.2為PDF文檔添加水印
16.4典型應(yīng)用
16.4.1批量合并PDF文檔
16.4.2批量拆分PDF文檔
16.4.3批量加密PDF文檔
16.4.4批量為PDF文檔添加水印
16.5小結(jié)
第17章處理Word文檔(56min)
17.1pythondocx模塊
17.1.1讀取Word文檔
17.1.2創(chuàng)建Word文檔
17.1.3查找與替換
17.2comtypes模塊與pdf2docx模塊
17.2.1將Word文檔轉(zhuǎn)換為PDF文檔
17.2.2將PDF文檔轉(zhuǎn)換為Word文檔
17.3pywin32模塊
17.3.1在Word文檔中標記多個關(guān)鍵詞
17.3.2在Word文檔中替換多個關(guān)鍵詞
17.3.3將多個Word文檔合并為一個Word文檔
17.4典型應(yīng)用
17.4.1將Word文檔批量轉(zhuǎn)換為PDF文檔
17.4.2將PDF文檔批量轉(zhuǎn)換為Word文檔
17.4.3批量替換不同Word文檔中的關(guān)鍵詞
17.4.4將同目錄下的Word文檔合并為一個Word文檔
17.5小結(jié)
附錄APython關(guān)鍵字和內(nèi)置函數(shù)