這是一本專為沒有程式設計基礎的讀者設計的入門Python書籍,全書約1000個程式實例 + 260多個實作習題,一步一步徹底講解Python語法的基礎知識,同時也將應用範圍擴充至GUI(圖形介面)設計、影像處理、中英文圖表繪製、文字辨識、詞雲(WordCloud)、台灣股市資料擷取與圖表製作、基礎統計、網路爬蟲、電子郵件、人臉辨識、以及將Python應用在Facebook、YouTube等。Python是一門可以很靈活使用的程式語言,本書特色在於對Python最基礎的知識與應用使用了大量靈活的實例做說明,讀者可以由這些程式實例事半功倍完成學會Python。
本書特色
目前市面上講解Python 書籍中語法最完整、範例最豐富的全彩印刷書籍。
用豐富、實用、有趣實例完整且深入講解Python語法的入門書籍。作者將Python 語法的各種用法用實例解說,同時穿插使用各種模組,以協助讀者未來可以更靈活使用Python,以奠定讀者邁向更高深學習的紮實基礎。
本書以約1000個程式實例搭配約500個模組的函數,輔助約260個習題實作,講解紮實的Python語法與豐富的專題實作,本書涵蓋下列知識與應用:
■ 人工智慧基礎知識融入章節內容
■ 認識 Python 彩蛋
■ 從bytes說起、編碼(encode)、解碼(decoding),到精通串列(list)、元組(tuple)、字典(dict)、集合(set)
■ 完整解說 Unicode 字符集和 utf-8 依據 Unicode 字符集的中文編碼方式
■ 從小型串列、元組、字典到大型數據資料的建立
■ 生成式 (generator) 建立 Python 資料結構,串列 (list)、字典 (dict)、集合 (set)
■ 在座標軸內計算任 2 點之間的距離,同時解說與人工智慧的關聯
■ 經緯度計算地球任 2 城市之間的距離,學習取得地球任意位置的經緯度
■ 萊布尼茲公式、尼拉卡莎、蒙地卡羅模擬計算圓週率
■ 基礎函數觀念,也深入到嵌套、closure、lambda、Decorator 等高階應用
■ Google 有一篇大數據領域著名的論文,MapReduce:Simplified Data Processing on Large Clusters,重要觀念是MapReduce,筆者將對map( ) 和reduce( ) 完整解說,更進一步配合lambda 觀念解說高階應用
■ 建立類別同時深入裝飾器 @property、@classmethod、@staticmathod 與類別特殊屬性與方法
■ 設計與應用自己設計的模組、活用外部模組 (module)
■ 賭場騙局
■ 設計加密與解密程式
■ Python 的輸入與輸出
■ 檔案壓縮與解壓縮
■ 程式除錯 (debug) 與異常 (exception) 處理
■ 檔案讀寫與目錄管理
■ 剪貼簿 (clipboard) 處理
■ 正則表達式 (Regular Expression)
■ 遞廻式觀念與碎形 (Fractal)
■ 影像處理與文字辨識,更進一步說明電腦儲存影像的方法與觀念
■ 建立有個人風格的 QR code 與電子名片 QR code
■ 認識中文分詞 jieba 與建立詞雲 (wordcloud) 設計
■ GUI 設計 - 實作小算盤
■ 實作動畫、音樂與遊戲
■ Matplotlib 中英文圖表繪製
■ 說明 csv 和 json 檔案
■ 繪製世界地圖
■ 台灣股市資料擷取與圖表製作
■ 網路爬蟲
■ 用 Python 執行手機傳簡訊
■ 用 Python 執行傳送電子郵件
■ 處理 PDF 檔案
■ 用 Python 控制螢幕與鍵盤
■ 輕量級的資料庫 SQLite 實作
■ 多工與多執行緒設計
■ 海龜繪圖,設計萬花筒與滿天星星
■ Facebook 與 YouTube 的應用
■ 實作機場人臉辨識系統
作者簡介:
洪錦魁
一位跨越電腦作業系統與科技時代的電腦專家,著作等身的作家。
■ DOS 時代他的代表作品是 IBM PC 組合語言、C、C++、Pascal、資料結構。
■ Windows 時代他的代表作品是 Windows Programming 使用 C、Visual Basic。
■ Internet 時代他的代表作品是網頁設計使用 HTML。
■ 大數據時代他的代表作品是 R 語言邁向 Big Data 之路。
除了作品被翻譯為簡體中文、馬來西亞文外,2000 年作品更被翻譯為Mastering HTML 英文版行銷美國。
近年來作品則是在北京清華大學和台灣深智同步發行:
1:Java 入門邁向高手之路王者歸來
2:Python 入門邁向高手之路王者歸來
3:HTML5 + CSS3 王者歸來
4:R 語言邁向Big Data 之路
他的著作最大的特色是,所有程式語法會依特性分類,同時以實用的程式範例做解說,讓整本書淺顯易懂,讀者可以由他的著作事半功倍輕鬆掌握相關知識。
作者序
1000程式實例+500個函數+260習題實例
多次與教育界的朋友相聚,談到電腦語言的發展趨勢,大家一致公認Python 已經是當今最重要的電腦語言了,幾乎所有知名公司,例如:Google、Facebook、⋯等皆已經將此語言列為必備電腦語言。了解許多人想學Python,市面上的書也不少了,但是目前市面上欠缺一本用簡單程式實例完整徹底講解Python 語法的書籍,或是Python語法講解不完整、造成學習上的障礙或是讀完一本Python 書籍卻常常看不懂專家寫的Python 程式,就這樣我決定撰寫一本用豐富、實用、有趣實例完整且深入講解Python語法的入門書籍。其實這本書也是目前市面上講解Python 書籍中語法最完整、範例最豐富的書籍。
Python 以簡潔著名,語法非常活,同時擁有非常多豐富、實用的模組,本書筆者嘗試將Python 語法的各種用法用實例解說,同時穿插使用各種模組,以協助讀者未來可以更靈活使用Python,以奠定讀者邁向更高深學習的紮實基礎。
本書以約1000 個程式實例搭配約500 個模組的函數,輔助約260 個習題,講解紮實的Python 語法,同時本書同時說明下列知識與應用:
■ 人工智慧基礎知識融入章節內容
■ 認識 Python 彩蛋
■ 從bytes說起、編碼(encode)、解碼(decoding),到精通串列(list)、元組(tuple)、字典(dict)、集合(set)
■ 完整解說 Unicode 字符集和 utf-8 依據 Unicode 字符集的中文編碼方式
■ 從小型串列、元組、字典到大型數據資料的建立
■ 生成式 (generator) 建立 Python 資料結構,串列 (list)、字典 (dict)、集合 (set)
■ 在座標軸內計算任 2 點之間的距離,同時解說與人工智慧的關聯
■ 經緯度計算地球任 2 城市之間的距離,學習取得地球任意位置的經緯度
■ 萊布尼茲公式、尼拉卡莎、蒙地卡羅模擬計算圓週率
■ 基礎函數觀念,也深入到嵌套、closure、lambda、Decorator 等高階應用
■ Google 有一篇大數據領域著名的論文,MapReduce:Simplified Data Processing on Large Clusters,重要觀念是MapReduce,筆者將對map( ) 和reduce( ) 完整解說,更進一步配合lambda 觀念解說高階應用
■ 建立類別同時深入裝飾器 @property、@classmethod、@staticmathod 與類別特殊屬性與方法
■ 設計與應用自己設計的模組、活用外部模組 (module)
■ 賭場騙局
■ 設計加密與解密程式
■ Python 的輸入與輸出
■ 檔案壓縮與解壓縮
■ 程式除錯 (debug) 與異常 (exception) 處理
■ 檔案讀寫與目錄管理
■ 剪貼簿 (clipboard) 處理
■ 正則表達式 (Regular Expression)
■ 遞廻式觀念與碎形 (Fractal)
■ 影像處理與文字辨識,更進一步說明電腦儲存影像的方法與觀念
■ 建立有個人風格的 QR code 與電子名片 QR code
■ 認識中文分詞 jieba 與建立詞雲 (wordcloud) 設計
■ GUI 設計 - 實作小算盤
■ 實作動畫、音樂與遊戲
■ Matplotlib 中英文圖表繪製
■ 說明 csv 和 json 檔案
■ 繪製世界地圖
■ 台灣股市資料擷取與圖表製作
■ 網路爬蟲
■ 用 Python 執行手機傳簡訊
■ 用 Python 執行傳送電子郵件
■ 處理 PDF 檔案
■ 用 Python 控制螢幕與鍵盤
■ 輕量級的資料庫 SQLite 實作
■ 多工與多執行緒設計
■ 海龜繪圖,設計萬花筒與滿天星星
■ Facebook 與 YouTube 的應用
■ 實作機場人臉辨識系統
寫過許多的電腦書著作,本書沿襲筆者著作的特色,程式實例豐富,相信讀者只要遵循本書內容必定可以在最短時間精通Python 設計,編著本書雖力求完美,但是學經歷不足,謬誤難免,尚祈讀者不吝指正。
洪錦魁2019-07-31
jiinkwei@me.com
圖書資源說明
本書籍的所有程式實例可以在深智公司網站下載。
本書所有章節均附是非與選擇的習題解答、以及實作習題的輸入與輸出,這些可
以在深智公司網站下載,特別是在實作題部分有附輸入與輸出,讀者可以遵循了解題目的本質與相關參考資訊。
教學資源說明
本書習題實作題約260 題均有習題解答,如果您是學校老師同時使用本書教學,
歡迎與本公司聯繫,本公司將提供習題解答。
另外,本書也有教學簡報檔案供教師教學使用。
一般消費者
一般消費者若需要習題解答,請向本公司洽購,建議留下姓名、Email 和手機號以便溝通,劃撥帳號如下:
劃撥帳號:50428738
深智數位股份有限公司
1000程式實例+500個函數+260習題實例
多次與教育界的朋友相聚,談到電腦語言的發展趨勢,大家一致公認Python 已經是當今最重要的電腦語言了,幾乎所有知名公司,例如:Google、Facebook、⋯等皆已經將此語言列為必備電腦語言。了解許多人想學Python,市面上的書也不少了,但是目前市面上欠缺一本用簡單程式實例完整徹底講解Python 語法的書籍,或是Python語法講解不完整、造成學習上的障礙或是讀完一本Python 書籍卻常常看不懂專家寫的Python 程式,就這樣我決定撰寫一本用豐富、實用、有趣實例完整且深入講解Python語法的入門書籍。其實...
目錄
第一章 基本觀念
1.1 認識Python
1-2 Python 的起源
1-3 Python 語言發展史
1-4 Python 的應用範圍
1-5 靜態語言與動態語言
1-6 跨平台的程式語言
1-7 系統的安裝與執行
1-8 2 與Python 3 不相容的驗證
1-9 檔案的建立、儲存、執行與開啟
1-10 程式註解
1-11 Python 彩蛋 .
第二章 認識變數與基本數學運算
2-1 用Python 做計算
2-2 認識變數
2-3 認識程式的意義
2-4 認識註解的意義
2-5 Python 變數與其它程式語言的差異
2-6 變數的命名原則
2-7 基本數學運算
2-8 指派運算子
2-9 Python 等號的多重指定使用
2-10 刪除變數
2-11 Python 的斷行
2-12 專題- 複利計算/ 計算圓面積與圓周長
第三章 Python 的基本資料型態
3-1 type( ) 函數
3-2 數值資料型態
3-3 布林值資料型態
3-4 字串資料型態
3-5 字串與字元
3-6 bytes 資料
3-7 專題- 地球到月球時間計算/ 計算座標軸2 點之間距離
第四章 基本輸入與輸出
4-1 Python 的輔助說明help( )
4-2 格式化輸出資料使用print( )
4-3 輸出資料到檔案
4-4 資料輸入input( )
4-5 處理字串的數學運算eval( )
4-6 列出所有內建函數dir( )
4-7 專題- 溫度轉換/ 房貸問題/ 正五角形面積 / 計算經緯度距離
第五章 程式的流程控制使用if 敘述
5-1 關係運算子
5-2 邏輯運算子
5-3 if 敘述
5-4 if ⋯ else 敘述
5-5 if ⋯ elif ⋯ else 敘述
5-6 巢狀的if 敘述
5-7 尚未設定的變數值None
5-8 專題-BMI 程式/ 猜出生日期/12 生肖系統/ 線性方程式
第六章 串列(List)
6-1 認識串列(list)
6-2 Python 簡單的物件導向觀念
6-3 獲得串列的方法
6-4 增加與刪除串列元素
6-5 串列的排序
6-6 進階串列操作
6-7 串列內含串列
6-8 串列的賦值與切片拷貝
6-9 再談字串
6-10 in 和not in 運算式
6-11 is 或is not 運算式
6-12 enumerate 物件
6-13 專題 建立大型串列/ 使用者帳號管理系統/ 文件加密
第七章 迴圈設計
7-1 基本for 迴圈
7-2 range( ) 函數
7-3 進階的for 迴圈應用
7-4 while 迴圈
7-5 enumerate 物件使用for 迴圈解析
7-6 專題 購物車設計/ 成績系統/ 圓周率
第八章 元組(Tuple)
8-1 元組的定義
8-2 讀取元組元素
8-3 遍歷所有元組元素
8-4 修改元組內容產生錯誤的實例
8-5 可以使用全新定義方式修改元組元素
8-6 元組切片(tuple slices)
8-7 方法與函數
8-8 串列與元組資料互換
8-9 其它常用的元組方法8
8-10 enumerate 物件使用在元組
8-11 使用zip( ) 打包多個物件
8-12 生成式(generator)
8-13 製作大型的元組資料
8-14 元組的功能
8-15 專題 認識元組/ 統計應用
第九章 字典(Dict)
9-1 字典基本操作
9-2 遍歷字典
9-3 建立字典串列
9-4 字典內鍵的值是串列
9-5 字典內鍵的值是字典
9-6 while 迴圈在字典的應用
9-7 字典常用的函數和方法
9-8 製作大型的字典資料
9-9 專題 文件分析/ 字典生成式/ 英漢字典
第十章 集合(Set)
10-1 建立集合
10-2 集合的操作
10-3 適用集合的方法
10-4 適用集合的基本函數操作
10-5 凍結集合frozenset
10-6 專題 夏令營程式/ 程式效率/ 集合生成式/ 雞尾酒實例
第十一章 函數設計
11-1 Python 函數基本觀
11-2 函數的參數設計
11-3 函數傳回值
11-4 呼叫函數時參數是串列
11-5 傳遞任意數量的參數
11-6 進一步認識函數
11-7 遞迴式函數設計recursive
11-8 區域變數與全域變數
11-9 匿名函數lambda
11-10 pass 與函數
11-11 type 關鍵字應用在函數
11-12 設計自己的range( )
11-13 裝飾器(Decorator)
11-14 專題 函數的應用/ 最大公約數/ 質數
第十二章 類別 – 物件導向的程式設計
12-1 類別的定義與使用
12-2 類別的訪問權限 – 封裝(encapsulation)
12-3 類別的繼承
12-4 多型(polymorphism)
12-5 多重繼承
12-6 type 與instance
12-7 特殊屬性
12-8 類別的特殊方法
12-9 專題 幾何資料的應用
第十三章 設計與應用模組
13-1 將自建的函數儲存在模組中
13-2 應用自己建立的函數模組
13-3 將自建的類別儲存在模組內
13-4 應用自己建立的類別模組
13-5 隨機數random 模組
13-6 時間time 模組
13-7 系統sys 模組
13-8 keyword 模組
13-9 日期calendar 模組
13-10 幾個增強Python 功力的模組
13-11 專題設計 賭場遊戲騙局/ 蒙地卡羅模擬/ 文件加密
第十四章 檔案的讀取與寫入
14-1 資料夾與檔案路徑
14-2 讀取檔案
14-3 寫入檔案
14-4 讀取和寫入二進位檔案
14-5 shutil 模組
14-6 檔案壓縮與解壓縮zipFile
14-7 認識編碼格式encode
14-8 剪貼簿的應用
14-9 專題設計 分析檔案/ 加密檔案
第十五章 程式除錯與異常處理
15-1 程式異常
15-2 設計多組異常處理程序
15-3 丟出異常
15-4 紀錄Traceback 字串
15-5 finally
15-6 程式斷言assert1
15-7 程式日誌模組logging
15-8 程式除錯的典故
第十六章 正則表達式Regular Expression
16-1 使用Python 硬功夫搜尋文字
16-2 正則表達式的基礎
16-3 更多搜尋比對模式
16-4 貪婪與非貪婪搜尋
16-5 正則表達式的特殊字元
16-6 MatchObject 物件
16-7 搶救CIA 情報員– sub( ) 方法
16-8 處理比較複雜的正則表示法
第十七章 用Python 處理影像檔案
17-1 認識Pillow 模組的RGBA
17-2 Pillow 模組的盒子元組(Box tuple)
17-3 影像的基本操作
17-4 影像的編輯
17-5 裁切、複製與影像合成
17-6 影像濾鏡
17-7 在影像內繪製圖案
17-8 在影像內填寫文字
17-9 專題 – 建立QR code/ 辨識車牌與建立停車場管理系統
17-10 專題 - 詞雲(WordCloud) 設計
第十八章 開發GUI 程式使用tkinter
18-1 建立視窗
18-2 標籤Label
18-3 視窗元件配置管理員Layout Managementt
18-4 功能鈕Button
18-5 變數類別
18-6 文字方塊Entry
18-7 文字區域Text
18-8 捲軸Scrollbar
18-9 選項鈕Radiobutton
18-10 核取方塊Checkbutton
18-11 對話方塊messagebox
18-12 圖形PhotoImage
18-13 尺度Scale 的控制
18-14 功能表Menu 設計
18-15 專題- 設計小算盤
第十九章 動畫與遊戲
19-1 繪圖功能
19-2 尺度控制畫布背景顏色
19-3 動畫設計
19-4 反彈球遊戲設計
19-5 專題- 使用tkinter 處理謝爾賓斯基三角形
第二十章 數據圖表的設計
20-1 繪製簡單的折線圖
20-2 繪製散點圖scatter( )
20-3 Numpy 模組
20-4 隨機數的應用
20-5 繪製多個圖表
20-6 長條圖的製作
20-7 圓餅圖的製作pie( )
20-8 圖表顯示中文
20-9 專題- 台灣股市資料讀取與圖表製作
第二十一章 JSON 資料與繪製世界地圖
21-1 認識json 資料格式
21-2 將Python 應用在json 字串形式資料
21-3 將Python 應用在json 檔案
21-4 簡單的json 檔案應用
21-5 世界人口數據的json 檔案
21-6 繪製世界地圖
第二十二章 使用Python 處理CSV 文件
22-1 建立一個CSV 文件
22-2 用記事本開啟CSV 檔案
22-3 csv 模組
22-4 讀取CSV 檔案
22-5 寫入CSV 檔案
22-6 專題- 使用CSV 檔案繪製氣象圖表
第二十三章 網路爬蟲
23-1 上網不再需要瀏覽器了
23-2 下載網頁資訊使用requests 模組
23-3 檢視網頁原始檔
23-4 解析網頁使用BeautifulSoup 模組
23-5 網路爬蟲實戰
23-6 命令提示字元視窗
第二十四章 Selenium 網路爬蟲的王者
24-1 順利使用Selenium 工具前的安裝工作
24-2 獲得webdriver 的物件型態
24-3 擷取網頁
24-4 尋找HTML 文件的元素
24-5 用Python 控制點選超連結
24-6 用Python 填寫表單和送出
24-7 用Python 處理使用網頁的特殊按鍵
24-8 用Python 處理瀏覽器運作
第二十五章 用Python 傳送手機簡訊
25-1 安裝twilio 模組
25-2 到Twilio 公司註冊帳號
25-3 使用Python 程式設計發送簡訊
第二十六章 用Python 傳送電子郵件
26-1 傳送電子郵件
26-2 正式使用Python 設計一個簡單的郵件程式
第二十七章 使用Python 處理PDF 檔案
27-1 開啟PDF 檔案
27-2 獲得PDF 文件的頁數
27-3 讀取PDF 頁面內容
27-4 檢查PDF 是否被加密
27-5 解密PDF 檔案
27-6 建立新的PDF 檔案
27-7 PDF 頁面的旋轉
27-8 加密PDF 檔案
27-9 處理PDF 頁面重疊
27-10 破解密碼的暴力程式設計
第二十八章 用Python 控制滑鼠、螢幕與鍵盤
28-1 滑鼠的控制
28-2 螢幕的處理
28-3 使用Python 控制鍵盤
28-4 網路表單的填寫
第二十九章 Python 與SQLite 資料庫
29-1 SQLite 基本觀念
29-2 資料庫連線
29-3 SQLite 資料類型
29-4 建立SQLite 資料庫表單3
29-5 增加SQLite 資料庫表單紀錄
29-6 查詢SQLite 資料庫表單
29-7 更新SQLite 資料庫表單紀錄
29-8 刪除SQLite 資料庫表單紀錄
29-9 DB Browser for SQLite
第三十章 多工與多執行緒
30-1 時間模組datetime
30-2 多執行緒
30-3 啟動其它應用程式subprocess 模組
第三十一章 海龜繪圖
31-1 基本觀念與安裝模組
31-2 繪圖初體驗
31-3 繪圖基本練習
31-4 控制畫筆色彩與線條粗細
31-5 繪製圓、弧形或多邊形
31-6 認識與操作海龜影像
31-7 填滿顏色
31-8 顏色動畫的設計
31-9 繪圖視窗的相關知識
31-10 文字的輸出
31-11 滑鼠與鍵盤訊號
31-12 專題- 謝爾賓斯基三角形
第三十二章 Python 與Facebook
32-1 Facebook 圖形API
32-2 facebook-sdk 存取資料的應用
第三十三章 聲音的控制
33-1 安裝與導入
33-2 一般音效的播放Sound( )
33-3 播放音樂檔案music( )
33-4 背景音樂
33-5 mp3 音樂播放器
第三十四章 人臉辨識系統設計
34-1 安裝OpenCV
34-2 讀取和顯示影像
34-3 OpenCV 的繪圖功能
34-4 人臉辨識
34-5 設計桃園國際機場的出入境人臉辨識系統
第三十五章 Python 與YouTube
35-1 安裝pytube 模組
35-2 正式使用pytube 模組
35-3 常用的pytube 物件屬性
35-4 將下載檔案存於指定資料夾
35-5 YouTube 影音檔案格式
35-6 篩選影音檔案格式
35-7 再看下載影音檔案
35-8 下載多個檔案
35-9 專題:使用圖形介面處理YouTube 影音檔案下載
附錄A 安裝Python
A-1 Windows 作業系統的安裝Python 版
附錄B 安裝第三方模組
B-1 pip 工具
B-2 啟動DOS 與安裝模組
B-3 導入模組安裝更新版模組
B-4 列出所安裝的模組
B-5 安裝更新版模組
B-6 刪除模組
B-7 找尋更多模組
B-8 安裝新版pip
附錄C 函數或方法索引表
附錄D RGB 色彩表
附錄E ASCII 碼值表
第一章 基本觀念
1.1 認識Python
1-2 Python 的起源
1-3 Python 語言發展史
1-4 Python 的應用範圍
1-5 靜態語言與動態語言
1-6 跨平台的程式語言
1-7 系統的安裝與執行
1-8 2 與Python 3 不相容的驗證
1-9 檔案的建立、儲存、執行與開啟
1-10 程式註解
1-11 Python 彩蛋 .
第二章 認識變數與基本數學運算
2-1 用Python 做計算
2-2 認識變數
2-3 認識程式的意義
2-4 認識註解的意義
2-5 Python 變數與其它程式語言的差異
2-6 變數的命名原則
2-7 基本數學運算
2-8 指派運算子
2-9 ...