這本書擴充原有內容,將程式實例與一般互動實例增加至超過1000個實例,讓整本書內容更紮實,本書主要內容如下:
# 內容穿插說明PEP 8風格,讀者可由此養成設計符合PEP 8風格的Python程式,這樣撰寫的程式可以方便自己與他人閱讀。
# 拋棄C、C++、Java語法思維,將Python語法、精神功能火力全開
# 人工智慧基礎知識融入章節內容
# 認識Python彩蛋
# 從bytes說起、編碼(encode)、解碼(decoding),到精通串列(list)、元組(tuple)、字典(dict)、集合(set)
# 完整解說Unicode字符集和utf-8依據Unicode字符集的中文編碼方式
# 從小型串列、元組、字典到大型數據資料的建立
# 生成式(generator)建立Python資料結構,串列(list)、字典(dict)、集合(set)
# 經緯度計算地球任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)
# 影像處理與文字辨識,更進一步說明電腦儲存影像的方法與觀念
# 認識中文分詞jieba與建立詞雲(wordcloud)設計
# GUI設計 - 實作小算盤
# 實作動畫與遊戲
# Matplotlib中英文圖表繪製
# 說明csv和json檔案
# 繪製世界地圖
# 台灣股市資料擷取與圖表製作
# Python解線性代數
# Python解聯立方程式
# Python執行數據分析
# 科學計算與數據分析Numpy、Scipy、Pandas
# 網路爬蟲
# 人工智慧破冰之旅 – KNN演算法
# 完整函數索引,未來可以隨時查閱
# 讀者可由以上內容,輕鬆獲得使用Python掌握數據科學的知
識。
本書特色
Python最強入門邁向數據科學之路王者歸來的第一版,2019年4月上市,立即登上當月天瓏暢銷排行榜第一名,這本書是該書的第二版,相較於第一版,第二版內容增加下列知識:
# PEP 8,Python設計風格,易讀易懂
# Python語法精神、效能發揮極致
# 說明底線開頭或結尾的變數
#複數觀念
# utf-8中文編碼
# format( )格式化輸出的優點
# f-strings輸出
# 非True或False的邏輯運算
# 歐幾里德演算法
# rindex( )、swapcase( )、zfill( )、以及更完整解說dir( )
# 通訊錄設計
# nonlocal變數
# 函數回傳多筆資料實質是回傳tuple
# string模組
# __name__ == ‘__main__’的優點
# 加強calendar模組解說
# 遺傳單眼皮或雙眼皮之統計機率知識
# 建立有個人風格的QR code與電子名片QR code
# 補充JSON和CSV檔案解說
# 網路實戰PM 2.5資料與JSON檔案
# Pickle和Shelve檔案
# 股市數據與CSV檔案
# Pandas讀取與寫入Excel
# 網路爬蟲
# 人工智慧破冰之旅 – KNN演算法
# 其他修訂小細節約50處
作者簡介:
洪錦魁
一位誇越電腦作業系統與科技時代的電腦專家,著作等身的作家。
■ 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:Python 網路爬蟲:大數據擷取、清洗、儲存與分析王者歸來
4:HTML5 + CSS3 王者歸來
5:R 語言邁向Big Data 之路
他的近期著作分別登上天瓏及博客來電腦書類暢銷排行榜第一名,他的書著作最 大的特色是,所有程式語法會依特性分類,同時以實用的程式範例做解說,讓整本書 淺顯易懂,讀者可以由他的著作事半功倍輕鬆掌握相關知識。
作者序
第二版序
相較於第一版,第二版內容增加下列知識:
■ PEP 8,Python 設計風格,易讀易懂
■ Python 語法精神、效能發揮極致
■ 說明底線開頭或結尾的變數
■ 複數觀念
■ utf-8 中文編碼
■ format( ) 格式化輸出的優點
■ f-strings 輸出
■ 非 True 或 False 的邏輯運算
■ 歐幾里德演算法
■ rindex( )、swapcase( )、zfill( )、以及更完整解說 dir( )
■ 通訊錄設計
■ nonlocal 變數
■ 函數回傳多筆資料實質是回傳 tuple
■ string 模組
■ __name__ == '__main__' 的優點
■ 加強 calendar 模組解說
■ 遺傳單眼皮或雙眼皮之統計機率知識
■ 建立有個人風格的 QR code 與電子名片 QR code
■ 補充 JSON 和 CSV 檔案解說
■ 網路實戰 PM 2.5 資料與 JSON 檔案
■ Pickle 和 Shelve 檔案
■ 股市數據與 CSV 檔案
■ Pandas 讀取與寫入 Excel
■ 網路爬蟲
■ 人工智慧破冰之旅 – KNN 演算法
■ 其他修訂小細節約 50 處
多次與教育界的朋友相聚,談到電腦語言的發展趨勢,大家一致公認Python 已經是當今最重要的電腦語言了,幾乎所有知名公司,例如:Google、Facebook、⋯等皆已經將此語言列為必備電腦語言。了解許多人想學Python,市面上的書也不少了,許多人買了許多書,但是學習Python 路上仍感障礙重重,原因是沒有選到好的書籍,市面上許多書籍的缺點是:
■ Python 語法講解不完整
■ 用 C、C++、Java 觀念撰寫實例
■ Python 語法的精神與內涵未做說明
■ Python 進階語法未做解說
■ 基礎實例太少,沒經驗的讀者無法舉一反三
■ 模組介紹不足,應用範圍有限
許多讀者因此買了一些書,讀完了,好像學會了,但到了網路看專家撰寫的程式往往看不懂。
就這樣我決定撰寫一本用豐富、實用、有趣實例完整且深入講解Python 語法的入門書籍。其實這本書也是目前市面上講解Python 書籍中語法最完整、應用範圍最廣、範例最豐富的書籍。
Python 以簡潔著名,語法非常活,同時擁有非常多豐富、實用的模組,本書筆者嘗試將Python 語法的各種用法用實例解說,同時穿插使用各種模組,以協助讀者未來可以更靈活使用Python,以奠定讀者邁向更高深學習的紮實基礎。
本書以約1000 個程式實例和一般實作,講解紮實的Python 語法,本書同時說明
下列知識與應用:
■ 內容穿插說明 PEP 8 風格,讀者可由此養成設計符合 PEP 8 風格的 Python 程式,這樣撰寫的程式可以方便自己與他人閱讀。
■ 拋棄 C、C++、Java 語法思_____維,將 Python 語法、精神功能火力全開
■ 人工智慧基礎知識融入章節內容
■ 認識 Python 彩蛋
■ 從bytes說起、編碼(encode)、解碼(decoding),到精通串列(list)、元組(tuple)、字典(dict)、集合(set)
■ 完整解說 Unicode 字符集和 utf-8 依據 Unicode 字符集的中文編碼方式
■ 從小型串列、元組、字典到大型數據資料的建立
■ 生成式 (generator) 建立 Python 資料結構,串列 (list)、字典 (dict)、集合 (set)
■ 經緯度計算地球任 2 城市之間的距離,學習取得地球任意位置的經緯度
■ 萊布尼茲公式、尼拉卡莎、蒙地卡羅模擬計算圓週率
■ 基礎函數觀念,也深入到嵌套、closure、lambda、Decorator 等高階應用
■ Google 有一篇大數據領域著名的論文,MapReduce:Simplified Data Processing on Large Clusters,重要觀念是MapReduce,筆者將對map( ) 和reduce( ) 完整解說,更進一步配合lambda 觀念解說高階應用
■ 建立類別同時深入裝飾器 @property、@classmethod、@staticmathod 與類別特殊屬性與方法
■ 設計與應用自己設計的模組、活用外部模組 (module)
■ 賭場騙局
■ 設計加密與解密程式
■ Python 的輸入與輸出
■ 檔案壓縮與解壓縮
■ 程式除錯 (debug) 與異常 (excepon) 處理
■ 檔案讀寫與目錄管理
■ 剪貼簿 (clipboard) 處理
■ 正則表達式 (Regular Expression)
■ 遞廻式觀念與碎形 (Fractal)
■ 影像處理與文字辨識,更進一步說明電腦儲存影像的方法與觀念
■ 認識中文分詞 jieba 與建立詞雲 (wordcloud) 設計
■ GUI 設計 - 實作小算盤
■ 實作動畫與遊戲
■ Matplotlib 中英文圖表繪製
■ 說明 csv 和 json 檔案
■ 繪製世界地圖
■ 台灣股市資料擷取與圖表製作
■ Python 解線性代數
■ Python 解聯立方程式
■ Python 執行數據分析
■ 科學計算與數據分析 Numpy、Scipy、Pandas
■ 網路爬蟲
■ 人工智慧破冰之旅 – KNN 演算法
■ 完整函數索引,未來可以隨時查閱
寫過許多的電腦書著作,本書沿襲筆者著作的特色,程式實例豐富,相信讀者只
要遵循本書內容必定可以在最短時間精通Python 設計,編著本書雖力求完美,但是學經歷不足,謬誤難免,尚祈讀者不吝指正。
洪錦魁2019-12-10
jiinkwei@me.com
圖書資源說明
本書籍的所有程式實例可以在深智公司網站下載,本書書號DM1931 是密碼。
本書所有章節均附是非與選擇的習題解答、以及實作習題的輸入與輸出,這些可
以在深智公司網站下載,特別是在實作題部分有附輸入與輸出,讀者可以遵循了解題目的本質與相關參考資訊。下列是示範輸出畫面。
教學資源說明
本書習題實作題約250 題均有習題解答,如果您是學校老師同時使用本書教學,
歡迎與本公司聯繫,本公司將提供習題解答。請老師聯繫時提供任教學校、科系、Email、和手機號碼,以方便本公司業務單位協助您。
另外,本書也有教學簡報檔案供教師教學使用。
第二版序
相較於第一版,第二版內容增加下列知識:
■ PEP 8,Python 設計風格,易讀易懂
■ Python 語法精神、效能發揮極致
■ 說明底線開頭或結尾的變數
■ 複數觀念
■ utf-8 中文編碼
■ format( ) 格式化輸出的優點
■ f-strings 輸出
■ 非 True 或 False 的邏輯運算
■ 歐幾里德演算法
■ rindex( )、swapcase( )、zfill( )、以及更完整解說 dir( )
■ 通訊錄設計
■ nonlocal 變數
■ 函數回傳多筆資料實質是回傳 tuple
■ string 模組
■ __name__ == '__main__' 的優點
■ 加強 calendar 模組解說
■ 遺傳單眼...
目錄
第一章 基本觀念
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 專題:函數的應用/質數
11-15 專題:歐幾里德演算法
第十二章 類別– 物件導向的程式設計
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-0 JSON 資料格式前言
21-1 認識json 資料格式
21-2 將Python 應用在json 字串形式資料
21-3 將Python 應用在json 檔案
21-4 簡單的json 檔案應用
21-5 世界人口數據的json 檔案
21-6 繪製世界地圖
21-7 環保署空氣品質JSON 檔案實作
第二十二章 使用Python 處理CSV /Pickle / Shelve 文件
22-1 建立一個CSV 文件
22-2 用記事本開啟CSV 檔案
22-3 csv 模組
22-4 讀取CSV 檔案
22-5 寫入CSV 檔案
22-6 專題- 使用CSV 檔案繪製氣象圖表
22-7 台灣股市數據
22-8 Pickle 模組
22-9 Shelve 模組
第二十三章 Numpy 模組
23-1 陣列ndarray
23-2 Numpy 的資料型態
23-3 一維陣列
23-4 二維陣列
23-5 簡單線性代數運算
23-6 Numpy 的廣播功能
23-7 常用的數學函數
23-8 隨機數函數
23-9 統計函數
23-10 檔案的輸入與輸出
第二十四章 SciPy 模組
24-1 線性代數scipy.linalg
24-2 統計scipy.stats
24-3 最佳化scipy.optimize
24-4 插值scipy.interpolate
第二十五章 Pandas 模組
25-1 Series
25-2 DataFrame
25-3 基本Pandas 資料分析與處理
25-4 檔案的輸入與輸出
25-5 Pandas 繪圖
25-6 時間序列(Time Series)
25-7 專題 鳶尾花
第二十六章 網路爬蟲
26-1 上網不再需要瀏覽器了
26-2 下載網頁資訊使用requests 模組
26-3 檢視網頁原始檔
26-4 解析網頁使用BeautifulSoup 模組
26-5 網路爬蟲實戰
26-6 命令提示字元視窗
第二十七章 人工智慧破冰之旅– KNN 演算法
27-1 電影分類
27-2 選舉造勢與銷售烤香腸
附錄A 安裝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 Py...