描述
內容簡介
|
作者簡介
|
目錄
第1 章 Python 基礎觀念 - 開啟 AI 與數據科學的大門
▌1-1 認識Python ▌1-2 Python 的起源 ▌1-3 Python 語言發展史 ▌1-4 Python 的應用範圍 ▌1-5 變數 - 靜態語言與動態語言 ▌1-6 系統的安裝與執行 1-6-1 系統安裝 1-6-2 程式設計與執行 ▌1-7 程式註解 1-7-1 註解符號# 1-7-2 三個單引號或雙引號 1-7-3 輸出ASCII 藝術作品 ▌1-8 Python 彩蛋(Easter Eggs)
第2 章 變數與基本數學運算 - 奠定程式與分析的基礎 ▌2-1 用Python 做計算 ▌2-2 認識變數 2-2-1 基本觀念 2-2-2 認識變數位址意義 ▌2-3 認識程式的意義 ▌2-4 認識註解的意義 ▌2-5 變數的命名原則 2-5-1 基本觀念 2-5-2 不可當作變數的關鍵字 2-5-3 不建議當作變數的函數/ 類別/異常物件名稱 2-5-4 Python 寫作風格(Python Enhancement Proposals) - PEP 8 2-5-5 認識底線開頭或結尾的變數 ▌2-6 基本數學運算 2-6-1 賦值 2-6-2 四則運算 2-6-3 餘數和整除 2-6-4 次方 2-6-5 Python 語言控制運算的優先順序 ▌2-7 指派運算子 ▌2-8 Python 等號的多重指定使用 ▌2-9 Python 的列連接(Line Continuation) ▌2-10 專題- 複利計算/ 計算圓面積與圓周長 2-10-1 銀行存款複利的計算 2-10-2 價值衰減的計算 2-10-3 數學運算 - 計算圓面積與周長 2-10-4 數學模組的pi 2-10-5 程式輸出內建函數 ▌2-11 認識內建函數、標準模組函數或是第3 方模組函數
第3 章 基礎資料型態 - 掌握 Python 內建結構與特性 ▌3-1 type( ) 函數 ▌3-2 數值資料型態 3-2-1 整數int 3-2-2 浮點數 3-2-3 整數與浮點數的運算 3-2-4 不同進位數的整數 3-2-5 強制資料型態的轉換 3-2-6 數值運算常用的函數 3-2-7 科學記號表示法 ▌3-3 布林值資料型態 3-3-1 基本觀念 3-3-2 bool( ) ▌3-4 字串資料型態 3-4-1 字串的連接 3-4-2 處理多於一列的字串 3-4-3 逸出字元 3-4-4 str( ) 3-4-5 將字串轉換為整數 3-4-6 字串與整數相乘產生字串複製效果 3-4-7 聰明的使用字串加法和換列字元\n 3-4-8 字串前加r ▌3-5 字串與字元 3-5-1 ASCII 碼 3-5-2 Unicode 碼 3-5-3 utf-8 編碼 3-5-4 繁體中文字編碼總結 ▌3-6 bytes 資料 3-6-1 字串轉成bytes 資料 3-6-2 bytes 資料轉成字串 ▌3-7 專題- 地球到月球時間計算/ 計算座標軸2 點之間距離 3-7-1 計算地球到月球所需時間 3-7-2 計算座標軸2 個點之間的距離
第4 章 資料輸入與輸出 - 高效讀寫技巧 ▌4-1 格式化輸出資料使用print( ) 4-1-1 函數print( ) 的基本語法 4-1-2 使用% 格式化字串同時用print( ) 輸出 4-1-3 精準控制格式化的輸出 4-1-4 { } 和format( ) 函數 4-1-5 f-strings 格式化字串 ▌4-2 掌握資料輸入input( ) ▌4-3 字串與數學運算的橋樑 - eval( ) 的運用 ▌4-4 實戰 - 溫度轉換/ 房貸/ 故宮到羅浮宮/ 雞兔同籠/ 核廢水 4-4-1 設計攝氏溫度和華氏溫度的轉換 4-4-2 房屋貸款問題實作 4-4-3 math 模組 – 計算台北故宮到法國羅浮宮的距離 4-4-4 雞兔同籠 – 解聯立方程式 4-4-5 核廢水
第5 章 程式流程控制精髓 - 決策與邏輯的藝術 ▌5-1 關係運算子 - 條件判斷與流程控制的基礎 ▌5-2 邏輯運算子 - 邏輯判斷的關鍵 ▌5-3 if 敘述在程式中的運用 - 決策的開始 ▌5-4 if ⋯ else 敘述 - 二選一的決策技巧 ▌5-5 if ⋯ elif ⋯ else 敘述 – 多重條件判斷 5-5-1 基礎語法與實例 5-5-2 創意程式 – 依情緒推薦活動 ▌5-6 巢狀 if 結構(Nested if Statements) ▌5-7 Python 的 match-case 流程控制 ▌5-8 實戰 - BMI/ 火箭升空/ 推薦飲料/潛在應用 5-8-1 設計人體體重健康判斷程式 5-8-2 火箭升空 5-8-3 推薦飲料 5-8-4 if 敘述潛在應用
第6 章 串列(List) 全面解析 - 靈活可變的資料容器 ▌6-1 認識串列(list) 6-1-1 串列基本定義 6-1-2 讀取串列元素 6-1-3 串列切片(list slices) 6-1-4 串列統計資料函數 6-1-5 更改串列元素的內容 6-1-6 串列的相加 6-1-7 串列乘以一個數字 6-1-8 刪除串列元素 6-1-9 串列為空串列的判斷 6-1-10 刪除串列 6-1-11 補充多重指定與串列 ▌6-2 Python 物件導向觀念與方法 6-2-1 取得串列的方法 6-2-2 了解特定方法的使用說明 ▌6-3 串列元素是字串的常用方法 6-3-1 更改字串大小寫lower( )/upper( )/title( )/swapcase( ) 6-3-2 刪除空白字元rstrip( )/lstrip( )/strip( ) 6-3-3 格式化字串位置center( )/ljust( )/rjust( )/zfill( ) ▌6-4 增加與刪除串列元素 6-4-1 在串列末端增加元素append( ) 6-4-2 插入串列元素insert( ) 6-4-3 刪除串列元素pop( ) 6-4-4 刪除指定的元素remove( ) ▌6-5 串列的排序 6-5-1 顛倒排序reverse( ) 6-5-2 sort( ) 排序 6-5-3 sorted( ) 排序 ▌6-6 進階串列操作 6-6-1 index( ) 6-6-2 count( ) ▌6-7 嵌套串列 - 串列內含串列 6-7-1 基礎觀念與實作 6-7-2 再談append( ) 6-7-3 extend( ) 6-7-4 二維串列 6-7-5 嵌套串列的其他應用 ▌6-8 串列的賦值與切片拷貝 6-8-1 串列賦值 6-8-2 位址的觀念 6-8-3 串列的切片拷貝 ▌6-9 再談字串 6-9-1 字串的索引 6-9-2 islower()/isupper()/isdigit()/isalpha()/isalnum( ) 6-9-3 字串切片 6-9-4 將字串轉成串列 6-9-5 使用split( ) 分割字串 6-9-6 串列元素的組合join( ) 6-9-7 子字串搜尋與索引 6-9-8 字串的其它方法 ▌6-10 in 和not in 運算式 ▌6-11 is 或is not 運算式 6-11-1 觀察整數變數在記憶體位址 6-11-2 驗證is 和is not 是依據物件位址回傳布林值 ▌6-12 enumerate 物件 ▌6-13 專題-大型串列/ 認識凱薩密碼/ 使用者帳號管理 6-13-1 製作大型的串列資料 6-13-2 凱薩密碼 6-13-3 大型串列應用實例
第7 章 迴圈設計 - 自動化流程與效能提升 ▌7-1 基本for 迴圈 7-1-1 for 迴圈基本運作 7-1-2 如果程式碼區塊只有一列 7-1-3 有多列的程式碼區塊 7-1-4 將for 迴圈應用在串列區間元素 7-1-5 將for 迴圈應用在資料類別的判斷 7-1-6 活用for 迴圈 ▌7-2 range( ) 函數 7-2-1 只有一個參數的range( ) 函數的應用 7-2-2 擴充專題銀行存款複利的軌跡 7-2-3 有2 個參數的range( ) 函數 7-2-4 有3 個參數的range( ) 函數 7-2-5 活用range( ) 應用 7-2-6 串列生成(list generator) 的應用 7-2-7 含有條件式的串列生成 7-2-8 列出ASCII 碼值或Unicode 碼值的字元 ▌7-3 進階的for 迴圈應用 7-3-1 巢狀for 迴圈 7-3-2 強制離開for 迴圈 - break 指令 7-3-3 for 迴圈暫時停止不往下執行– continue 指令 7-3-4 for ⋯ else 迴圈 ▌7-4 while 迴圈 7-4-1 基本while 迴圈 7-4-2 認識哨兵值(Sentinel value) 7-4-3 巢狀while 迴圈 7-4-4 強制離開while 迴圈 - break 指令 7-4-5 while 迴圈暫時停止不往下執行– continue 指令 7-4-6 while 迴圈條件運算式與可迭代物件 7-4-7 無限迴圈與pass ▌7-5 enumerate 物件使用for 迴圈解析 ▌7-6 專題- 購物車/ 成績/ 圓周率/ 國王麥粒/ 電影院劃位 7-6-1 設計購物車系統 7-6-2 建立真實的成績系統 7-6-3 計算圓周率 7-6-4 國王的麥粒 7-6-5 電影院劃位系統設計 7-6-6 Fibonacci 數列
第8 章 元組(Tuple) 的妙用 - 不可變結構的高效應用 ▌8-1 元組的定義 ▌8-2 讀取元組元素 ▌8-3 遍歷所有元組元素 ▌8-4 修改元組內容產生錯誤的實例 ▌8-5 元組切片(tuple slices) ▌8-6 方法與函數 ▌8-7 串列與元組資料互換 ▌8-8 其它常用的元組方法 ▌8-9 enumerate 物件使用在元組 ▌8-10 使用zip( ) 打包多個物件 ▌8-11 生成式(generator) ▌8-12 製作大型的串列資料 ▌8-13 元組的功能 ▌8-14 專題- 認識元組/ 打包與解包/bytes 與bytearray 8-14-1 認識元組 8-14-2 多重指定、打包與解包 8-14-3 再談bytes 與bytearray 8-14-4 match-case 應用在序列
第9 章 字典(Dict) - 鍵值對資料的靈活運用 ▌9-1 字典基本操作 9-1-1 定義字典 9-1-2 列出字典元素的值 9-1-3 增加字典元素 9-1-4 更改字典元素內容 9-1-5 驗證元素是否存在 9-1-6 刪除字典特定元素 9-1-7 字典的pop( ) 方法 9-1-8 字典的popitem( ) 方法 9-1-9 刪除字典所有元素 9-1-10 建立一個空字典 9-1-11 字典的拷貝 9-1-12 取得字典元素數量 9-1-13 設計字典的可讀性技巧 9-1-14 合併字典update( ) 與使用新方法 9-1-15 dict( ) 9-1-16 再談zip( ) ▌9-2 遍歷字典 9-2-1 items( ) 遍歷字典的「鍵: 值」 9-2-2 keys( ) 遍歷字典的「鍵」 9-2-3 values( ) 遍歷字典的「值」 9-2-4 sorted( ) 依鍵排序與遍歷字典 9-2-5 sorted( ) 依值排序與遍歷字典的值 ▌9-3 match-case 與字典的結合 9-3-1 match-case 在字典基礎應用 9-3-2 創意應用:AI 客服智慧回覆系統 ▌9-4 字典內鍵的值是串列 ▌9-5 字典內鍵的值是字典 ▌9-6 字典常用的函數和方法 9-6-1 len( ) 9-6-2 fromkeys( ) 9-6-3 get( ) 9-6-4 setdefault( ) ▌9-7 專題- 文件分析/ 字典生成式/ 星座/ 凱薩密碼/ 摩斯密碼 9-7-1 傳統方式分析文章的文字與字數 9-7-2 字典生成式 9-7-3 設計星座字典 9-7-4 文件加密 – 凱薩密碼實作 9-7-5 摩斯密碼(Morse code) 9-7-6 字典的潛在應用
第10 章 集合(Set) 實戰 - 高效數據處理的關鍵技術 ▌10-1 建立集合 10-1-1 使用{ } 建立集合 10-1-2 集合元素是唯一 10-1-3 使用set( ) 建立集合 10-1-4 集合的基數(cardinality) 10-1-5 建立空集合要用set( ) 10-1-6 大數據資料與集合的應用 ▌10-2 集合的操作 10-2-1 交集(intersection) 10-2-2 聯集(union) 10-2-3 差集(difference) 10-2-4 是成員in 10-2-5 不是成員not in ▌10-3 適用集合的方法 10-3-1 add( ) 10-3-2 remove( ) 10-3-3 pop( ) 10-3-4 update( ) ▌10-4 適用集合的基本函數操作 ▌10-5 凍結集合frozenset ▌10-6 專題- 夏令營程式/ 程式效率/ 集合生成式/ 雞尾酒實例 10-6-1 夏令營程式設計 10-6-2 集合生成式 10-6-3 集合增加程式效率 10-6-4 雞尾酒的實例 10-6-5 集合的潛在應用
第11 章 函數設計 - 程式重用與維護的核心 ▌11-1 Python 函數基本觀念 11-1-1 函數的定義 11-1-2 沒有傳入參數也沒有傳回值的函數 11-1-3 在Python Shell 執行函數 ▌11-2 函數的參數設計 11-2-1 傳遞一個參數 11-2-2 多個參數傳遞 11-2-3 關鍵字參數 參數名稱= 值 11-2-4 參數預設值的處理 ▌11-3 函數傳回值 11-3-1 傳回None 11-3-2 簡單回傳數值資料 11-3-3 傳回多筆資料的應用– 實質是回傳tuple 11-3-4 簡單回傳字串資料 11-3-5 再談參數預設值 11-3-6 函數回傳字典資料 ▌11-4 呼叫函數時參數是串列 11-4-1 基本傳遞串列參數的應用 11-4-2 觀察傳遞一般變數與串列變數到函數的區別 11-4-3 在函數內修訂串列的內容 11-4-4 使用副本傳遞串列 ▌11-5 傳遞任意數量的參數 11-5-1 基本傳遞處理任意數量的參數 11-5-2 設計含有一般參數與任意數量參數的函數 11-5-3 設計含有一般參數與任意數量的關鍵字參數 ▌11-6 進一步認識函數 11-6-1 函數文件字串Docstring 11-6-2 函數是一個物件 11-6-3 函數可以是資料結構成員 11-6-4 函數可以當作參數傳遞給其它函數 11-6-5 函數當參數與*args 不定量的參數 11-6-6 嵌套函數 ▌11-7 遞迴式函數設計recursive 11-7-1 從掉入無限遞迴說起 11-7-2 非遞迴式設計階乘數函數 11-7-3 從一般函數進化到遞迴函數 11-7-4 Python 的遞迴次數限制 ▌11-8 區域變數與全域變數 11-8-1 全域變數可以在所有函數使用 11-8-2 區域變數與全域變數使用相同的名稱 11-8-3 程式設計需注意事項 11-8-4 locals( ) 和globals( ) ▌11-9 匿名函數lambda 11-9-1 匿名函數lambda 的語法 11-9-2 使用lambda 匿名函數的理由 11-9-3 匿名函數應用在高階函數的參數 11-9-4 匿名函數使用與filter( ) 11-9-5 匿名函數使用與map( ) 11-9-6 匿名函數使用與reduce( ) 11-9-7 深度解釋串列的排序sort( ) 11-9-8 深度解釋排序sorted( ) 11-9-9 進階排序Sorted( ) 的應用 ▌11-10 pass 與函數 ▌11-11 type 關鍵字應用在函數 ▌11-12 裝飾器(Decorator) 11-12-1 基礎應用 11-12-2 創意應用 - AI 智慧型函數執行計時裝飾器 ▌11-13 專題- 單字次數/ 歐幾里德演算法/ 函數應用 11-13-1 用函數重新設計記錄一篇文章每個單字出現次數 11-13-2 歐幾里德演算法 11-13-3 函數潛在的進階應用
第12 章 類別與物件導向 - 打造模組化與可擴充程式 ▌12-1 類別的定義與使用 12-1-1 什麼是類別與物件? 12-1-2 為什麼要使用類別? 12-1-3 類別與物件的關係 12-1-4 定義類別 12-1-5 操作類別的屬性與方法 12-1-6 類別的建構方法 12-1-7 屬性初始值的設定 ▌12-2 類別的訪問權限 – 封裝(encapsulation) 12-2-1 私有屬性 12-2-2 私有方法 12-2-3 從存取屬性值看Python 風格property( ) 12-2-4 裝飾器@property 12-2-5 方法與屬性的類型 12-2-6 靜態方法 ▌12-3 類別的繼承 12-3-1 衍生類別繼承基底類別的實例應用 12-3-2 如何取得基底類別的私有屬性 12-3-3 衍生類別與基底類別有相同名稱的屬性 12-3-4 衍生類別與基底類別有相同名稱的方法 12-3-5 衍生類別引用基底類別的方法 12-3-6 衍生類別有自己的方法 12-3-7 三代同堂的類別與取得基底類別的屬性super( ) 12-3-8 兄弟類別屬性的取得 12-3-9 認識Python 類別方法的self 參數 ▌12-4 多型(polymorphism) ▌12-5 多重繼承 12-5-1 基本觀念 12-5-2 super( ) 應用在多重繼承的問題 ▌12-6 type 與is instance 12-6-1 type( ) 12-6-2 isinstance( ) ▌12-7 特殊屬性 12-7-1 文件字串__doc__ 12-7-2 __name__ 屬性 ▌12-8 類別的特殊方法 12-8-1 __str__( ) 方法 12-8-2 __repr__( ) 方法 12-8-3 __iter__( ) 方法 12-8-4 __eq__( ) 方法 ▌12-9 專題- 幾何資料/ 類別設計的潛在應用 12-9-1 幾何資料 12-9-2 類別設計的潛在應用
第13 章 模組設計與應用 - 建構專業軟體的基石 ▌13-1 將自建的函數儲存在模組中 13-1-1 先前準備工作 13-1-2 建立函數內容的模組 ▌13-2 應用自己建立的函數模組 13-2-1 import 模組名稱 13-2-2 導入模組內特定單一函數 13-2-3 導入模組內多個函數 13-2-4 導入模組所有函數 13-2-5 使用as 給函數指定替代名稱 13-2-6 使用as 給模組指定替代名稱 13-2-7 將主程式放在main( ) 與__name__ 搭配的好處 ▌13-3 將自建的類別儲存在模組內 13-3-1 先前準備工作 13-3-2 建立類別內容的模組 ▌13-4 應用自己建立的類別模組 13-4-1 導入模組的單一類別 13-4-2 導入模組的多個類別 13-4-3 導入模組內所有類別 13-4-4 import 模組名稱 13-4-5 模組內導入另一個模組的類別 ▌13-5 隨機數random 模組 13-5-1 randint( ) 13-5-2 random( ) 13-5-3 uniform( ) 13-5-4 choice( ) 13-5-5 shuffle( ) 13-5-6 sample( ) 13-5-7 seed( ) ▌13-6 時間time 模組 13-6-1 time( ) 13-6-2 asctime( ) 13-6-3 ctime(n) 13-6-4 localtime( ) 13-6-5 process_time( ) 13-6-6 strftime( ) ▌13-7 系統sys 模組 13-7-1 version 和version_info 屬性 13-7-2 platform 屬性 13-7-3 path 屬性 13-7-4 getwindowsversion( ) 13-7-5 executable ▌13-8 keyword 模組 13-8-1 kwlist 屬性 13-8-2 iskeyword( ) ▌13-9 日期calendar 模組 13-9-1 列出某年是否潤年isleap( ) 13-9-2 印出月曆month( ) 13-9-3 印出年曆calendar( ) 13-9-4 其它方法 ▌13-10 pprint 和string 模組 13-10-1 pprint 模組 13-10-2 string 模組 ▌13-11 專題設計 - 賭場遊戲騙局/ 蒙地卡羅模擬/ 文件加密 13-11-1 賭場遊戲騙局 13-11-2 蒙地卡羅模擬 13-11-3 再談文件加密 13-11-4 全天下只有你可以解的加密程式?你也可能無法解? 13-11-5 應用模組的潛在應用
第14 章 檔案與目錄管理 - 資料讀寫與組織策略 ▌14-1 資料夾與檔案路徑 ▌14-2 os 模組 14-2-1 取得目前工作目錄os.getcwd( ) 14-2-2 獲得特定工作目錄的內容os.listdir( ) 14-2-3 遍歷目錄樹os.walk( ) ▌14-3 os.path 模組 14-3-1 取得絕對路徑os.path.abspath 14-3-2 傳回相對路徑os.path.relpath( ) 14-3-3 檢查路徑方法exists/isabs/isdir/isfile 14-3-4 檔案與目錄的操作mkdir/rmdir/remove/chdir/rename 14-3-5 傳回檔案路徑os.path.join( ) 14-3-6 獲得特定檔案的大小os.path.getsize( ) ▌14-4 獲得特定工作目錄內容glob ▌14-5 讀取檔案 14-5-1 開啟一個檔案open( ) 14-5-2 讀取整個檔案read(n) 14-5-3 with 關鍵字 14-5-4 逐列讀取檔案內容 14-5-5 逐列讀取使用readlines( ) 14-5-6 認識讀取指針與指定讀取文字數量 14-5-7 分批讀取檔案資料 ▌14-6 寫入檔案 14-6-1 將執行結果寫入空的文件內 14-6-2 寫入數值資料 14-6-3 輸出多列資料的實例 14-6-4 檔案很大時的分段寫入 14-6-5 writelines( ) ▌14-7 讀取和寫入二進位檔案 14-7-1 拷貝二進位檔案 14-7-2 隨機讀取二進位檔案 ▌14-8 shutil 模組 ▌14-9 安全刪除檔案或目錄send2trash( ) ▌14-10 檔案壓縮與解壓縮zipfile 14-10-1 執行檔案或目錄的壓縮 14-10-2 讀取zip 檔案 14-10-3 解壓縮zip 檔案 ▌14-11 再談編碼格式encoding 14-11-1 中文Windows 作業系統記事本預設的編碼 14-11-2 utf-8 編碼 14-11-3 認識utf-8 編碼的BOM ▌14-12 剪貼簿的應用 ▌14-13 專題設計- 分析檔案/ 加密檔案/ 潛在應用 14-13-1 以讀取檔案方式處理分析檔案 14-13-2 加密檔案 14-13-3 檔案輸入與輸出的潛在應用
第15 章 程式除錯與異常處理 - 穩定度與安全性的保證 ▌15-1 程式異常 15-1-1 一個除數為0 的錯誤 15-1-2 撰寫異常處理程序try...except 15-1-3 try - except - else 15-1-4 找不到檔案的錯誤FileNotFoundError 15-1-5 分析單一文件的字數 15-1-6 分析多個文件的字數 ▌15-2 設計多組異常處理程序 15-2-1 常見的異常物件 15-2-2 設計捕捉多個異常 15-2-3 使用一個except 捕捉多個異常 15-2-4 處理異常但是使用Python 內建的錯誤訊息 15-2-5 捕捉所有異常 ▌15-3 丟出異常 ▌15-4 紀錄Traceback 字串 ▌15-5 finally ▌15-6 程式斷言assert 15-6-1 設計斷言 15-6-2 停用斷言 ▌15-7 程式日誌模組logging 15-7-1 logging 模組 15-7-2 logging 的等級 15-7-3 格式化logging 訊息輸出format 15-7-4 時間資訊asctime 15-7-5 format 內的message 15-7-6 列出levelname 15-7-7 使用logging 列出變數變化的應用 15-7-8 正式追蹤factorial 數值的應用 15-7-9 將程式日誌logging 輸出到檔案 15-7-10 隱藏程式日誌logging 的DEBUG等級使用CRITICAL 15-7-11 停用程式日誌logging ▌15-8 程式除錯的典故 ▌15-9 程式除錯與異常處理的潛在應用
第16 章 正則表達式 - 強效字串處理利器 ▌16-1 使用Python 硬功夫搜尋文字 ▌16-2 正則表達式的基礎 16-2-1 建立搜尋字串模式pattern 16-2-2 search( ) 方法 16-2-3 findall( ) 方法 16-2-4 再看正則表達式 ▌16-3 更多搜尋比對模式 16-3-1 使用小括號分組 16-3-2 groups( ) 16-3-3 區域號碼是在小括號內 16-3-4 使用管道| 16-3-5 搜尋時忽略大小寫 ▌16-4 貪婪與非貪婪搜尋 16-4-1 搜尋時使用大括號設定比對次數 16-4-2 貪婪與非貪婪搜尋 ▌16-5 正則表達式的特殊字元 16-5-1 特殊字元表 16-5-2 字元分類 16-5-3 字元分類的^ 字元 16-5-4 正則表示法的^ 字元 16-5-5 正則表示法的$ 字元 16-5-6 單一字元使用萬用字元"." 16-5-7 所有字元使用萬用字元".*" 16-5-8 換列字元的處理 ▌16-6 MatchObject 物件 16-6-1 re.match( ) 16-6-2 MatchObject 幾個重要的方法 ▌16-7 搶救CIA 情報員- sub( ) 方法 16-7-1 一般的應用 16-7-2 搶救CIA 情報員 ▌16-8 處理比較複雜的正則表示法 16-8-1 將正則表達式拆成多列字串 16-8-2 re.VERBOSE 16-8-3 電子郵件地址的搜尋 16-8-4 re.IGNORECASE/re.DOTALL/re.VERBOSE ▌16-9 正則表達式的潛在應用
第17 章 影像檔案處理 - Python 在多媒體的應用 ▌17-1 認識Pillow 模組的RGBA 17-1-1 getrgb( ) 17-1-2 getcolor( ) ▌17-2 Pillow 模組的盒子元組(Box tuple) 17-2-1 基本觀念 17-2-2 計算機眼中的影像 ▌17-3 影像的基本操作 17-3-1 開啟影像物件 17-3-2 影像大小屬性 17-3-3 取得影像物件檔案名稱 17-3-4 取得影像物件的檔案格式 17-3-5 儲存檔案 17-3-6 螢幕顯示影像 17-3-7 建立新的影像物件 ▌17-4 影像的編輯 17-4-1 更改影像大小 17-4-2 影像的旋轉 17-4-3 影像的翻轉 17-4-4 影像像素的編輯 ▌17-5 裁切、複製與影像合成 17-5-1 裁切影像 17-5-2 複製影像 17-5-3 影像合成 17-5-4 將裁切圖片填滿影像區間 ▌17-6 影像濾鏡 ▌17-7 在影像內繪製圖案 17-7-1 繪製點 17-7-2 繪製線條 17-7-3 繪製圓或橢圓 17-7-4 繪製矩形 17-7-5 繪製多邊形 ▌17-8 在影像內填寫文字 ▌17-9 專題 – 建立QR code/ 文字辨識與建立停車場管理系統 17-9-1 建立QR code 17-9-2 文字辨識與停車場管理系統
第18 章 GUI 程式開發 - 以 tkinter 打造視覺化介面 ▌18-1 建立視窗 ▌18-2 標籤Label ▌18-3 視窗元件配置管理員Layout Management 18-3-1 pack( ) 方法 18-3-2 grid( ) 方法 18-3-3 place( ) 方法 18-3-4 視窗元件位置的總結 ▌18-4 功能鈕Button 18-4-1 基本觀念 18-4-2 設定視窗背景config( ) 18-4-3 使用lambda 表達式的好時機 ▌18-5 變數類別 ▌18-6 文字方塊Entry ▌18-7 文字區域Text ▌18-8 捲軸Scrollbar ▌18-9 選項鈕Radiobutton ▌18-10 核取方塊Checkbutton ▌18-11 對話方塊messagebox ▌18-12 圖形PhotoImage 18-12-1 圖形與標籤的應用 18-12-2 圖形與功能鈕的應用 ▌18-13 尺度Scale 的控制 ▌18-14 功能表Menu 設計 ▌18-15 專題- 設計小算盤
第19 章 詞雲設計 - 文字可視化創意應用 ▌19-1 安裝wordcloud ▌19-2 我的第一個詞雲程式 ▌19-3 建立含中文字詞雲結果失敗 ▌19-4 建立含中文字的詞雲 ▌19-5 進一步認識jieba 模組的分詞 ▌19-6 建立含圖片背景的詞雲
第20 章 數據圖表設計 - 資料視覺化基礎 ▌20-1 認識matplotlib.pyplot 模組的主要函數 ▌20-2 繪製簡單的折線圖plot( ) 20-2-1 畫線基礎實作 20-2-2 線條寬度linewidth 20-2-3 標題的顯示 20-2-4 多組數據的應用 20-2-5 線條色彩與樣式 20-2-6 刻度設計 20-2-7 圖例legend( ) 20-2-8 保存與開啟圖檔 ▌20-3 繪製散點圖scatter( ) 20-3-1 基本散點圖的繪製 20-3-2 系列點的繪製 ▌20-4 Numpy 模組基礎知識 20-4-1 建立一個簡單的陣列linspace( )和arange( ) 20-4-2 繪製波形 20-4-3 點樣式與色彩的應用 20-4-4 使用plot( ) 繪製波形 20-4-5 建立不等大小的散點圖 20-4-6 填滿區間Shading Regions ▌20-5 色彩映射color mapping ▌20-6 繪製多個圖表 20-6-1 圖表顯示中文 20-6-2 subplot( ) 語法 20-6-3 含子圖表的基礎實例 20-6-4 子圖配置的技巧 ▌20-7 建立畫布與子圖表物件 20-7-1 pyplot 的API 與OO API 20-7-2 自建畫布與建立子圖表 20-7-3 建立寬高比 ▌20-8 長條圖的製作 20-8-1 bar( ) 20-8-2 hist( ) ▌20-9 圓餅圖的製作pie( ) 20-9-1 國外旅遊調查表設計 20-9-2 增加百分比的國外旅遊調查表 20-9-3 突出圓餅區塊的數據分離 ▌20-10 設計2D 動畫 20-10-1 FuncAnimation( ) 函數 20-10-2 設計移動的sin 波 20-10-3 設計球沿著sin 波形移動 ▌20-11 數學表達式/ 輸出文字/ 圖表註解 20-11-1 圖表的數學表達式 20-11-2 在圖表內輸出文字text( ) 20-11-3 增加圖表註解 20-11-4 極座標繪圖
第21 章 JSON 與世界地圖 - 全球資料繪製實戰 ▌21-1 JSON 資料格式前言 ▌21-2 認識json 資料格式 21-2-1 物件(object) 21-2-2 陣列(array) 21-2-3 json 資料存在方式 ▌21-3 將Python 應用在json 字串形式資料 21-3-1 使用dumps( ) 將Python 資料轉成json 格式 21-3-2 dumps( ) 的sort_keys 參數 21-3-3 dumps( ) 的indent 參數 21-3-4 使用loads( ) 將json 格式資料轉成Python 的資料 21-3-5 一個json 文件只能放一個json物件? ▌21-4 將Python 應用在json 檔案 21-4-1 使用dump( ) 將Python 資料轉成json 檔案 21-4-2 將中文字典資料轉成json 檔案 21-4-3 使用load( ) 讀取json 檔案 ▌21-5 世界人口數據的json 檔案 21-5-1 JSON 數據檢視器 21-5-2 認識人口統計的json 檔案 21-5-3 認識pygal.maps.world 的國碼資訊 ▌21-6 繪製世界地圖 21-6-1 基本觀念 21-6-2 讓地圖呈現數據 21-6-3 繪製世界人口地圖 ▌21-7 專題- 環境部空氣品質
第22 章 CSV 文件處理 - 掌握結構化資料 ▌22-1 建立一個CSV 文件 ▌22-2 開啟「utf-8」格式CSV 檔案 22-2-1 使用記事本開啟 22-2-2 使用Excel 開啟 ▌22-3 csv 模組 ▌22-4 讀取CSV 檔案 22-4-1 使用with open( ) 開啟CSV 檔案 22-4-2 建立Reader 物件 22-4-3 使用串列索引讀取CSV 內容 22-4-4 DictReader( ) ▌22-5 寫入CSV 檔案 22-5-1 開啟欲寫入的檔案with open( ) 22-5-2 建立writer 物件 22-5-3 輸出串列writerow( ) 22-5-4 delimiter 關鍵字 22-5-5 寫入字典資料DictWriter( ) ▌22-6 專題- 使用CSV 檔案繪製氣象圖表 22-6-1 台北2025 年1 月氣象資料 22-6-2 讀取最高溫與最低溫 22-6-3 繪製最高溫 22-6-4 天氣報告增加日期刻度 22-6-5 日期位置的旋轉 22-6-6 繪製最高溫與最低溫 ▌22-7 CSV 真實案例實作 22-7-1 認識台灣股市的CSV 的檔案 22-7-2 繪製股市最高價、最低價與收盤價日線圖
第23 章 Numpy 基礎 - 科學運算必備工具 ▌23-1 陣列ndarray ▌23-2 Numpy 的資料型態 ▌23-3 建立一維或多維陣列 23-3-1 認識ndarray 的屬性 23-3-2 使用array( ) 建立一維陣列 23-3-3 使用array( ) 函數建立多維陣列 23-3-4 使用zeros( ) 建立內容是0 的多維陣列 23-3-5 使用ones( ) 建立內容是1 的多維陣列 23-3-6 使用empty( ) 建立未初始化的多維陣列 23-3-7 其他建立陣列函數 ▌23-4 一維陣列的四則運算與基礎操作 23-4-1 一維陣列的四則運算 23-4-2 一維陣列的關係運算子運算 23-4-3 陣列結合或是加入陣列元素concatenate( ) 23-4-4 在陣列指定索引插入元素insert( ) 23-4-5 刪除指定索引的陣列元素delete( ) ▌23-5 用切片提取一維陣列的元素 23-5-1 用切片提取一維陣列的元素 23-5-2 用串列提取陣列元素 23-5-3 用布林值陣列提取陣列元素 ▌23-6 多維陣列的索引與切片 23-6-1 認識axis 的定義 23-6-2 二維陣列的索引 23-6-3 三維陣列的索引 23-6-4 多維陣列的切片 ▌23-7 陣列的拷貝與檢視 23-7-1 認識檢視View 23-7-2 是否共用記憶體 23-7-3 使用參數copy=True 複製數據 23-7-4 使用copy( ) 函數複製陣列 ▌23-8 更改陣列外形 23-8-1 更改陣列維度reshape( ) 23-8-2 多維陣列轉一維陣列ravel( ) 23-8-3 多維陣列轉一維陣列flatten( ) 23-8-4 轉置矩陣transpose( ) 23-8-5 新增加一個軸newaxis 23-8-6 移除只有一個元素的軸squeeze( ) ▌23-9 陣列分割 23-9-1 hsplit( ) 和vsplit( ) 23-9-2 split( ) ▌23-10 陣列合併與堆疊 23-10-1 陣列垂直合併vstack( ) 23-10-2 陣列水平合併hstack( ) 23-10-3 stack( ) 23-10-4 column_stack( ) 和row_stack( )
第24 章 基礎統計與隨機數 – 數據科學入門 ▌24-1 機器學習視角 - 母體與樣本 24-1-1 母體與樣本 24-1-2 機器學習視角看母體與樣本 ▌24-2 數據加總 ▌24-3 數據分佈 ▌24-4 數據中心指標 24-4-1 平均數(mean) 24-4-2 中位數(median) 24-4-3 眾數(mode) 24-4-4 數據分佈圖 ▌24-5 數據分散指標 – 變異數與標準差 24-5-1 變異數 24-5-2 標準差 24-5-3 數據分散指標的應用 ▌24-6 符號運算規則與驗證 ▌24-7 活用符號 ▌24-8 迴歸分析 24-8-1 相關係數(Correlation Coefficient) 24-8-2 建立線性回歸模型與數據預測 24-8-3 二次函數的迴歸模型 ▌24-9 Numpy 隨機分佈函數 24-9-1 Numpy 的random 模組與Python內建random 模組 24-9-2 Numpy 的random 模組基礎 24-9-3 rand( ) 24-9-4 randn( ) 24-9-5 normal( ) 24-9-6 uniform( ) 24-9-7 triangular( ) 24-9-8 shuffle( ) 和permutation( ) 24-9-9 choice( )
第25 章 Numpy 進階運算與 3D 繪圖 -多維度資料探索 ▌25-1 基礎數學函數 25-1-1 認識常數 25-1-2 基礎數學函數 25-1-3 捨去函數 25-1-4 基礎數學運算函數 25-1-5 最大公因數與最小公倍數 ▌25-2 三角函數 ▌25-3 指數與對數函數 25-3-1 指數函數 25-3-2 對數函數 ▌25-4 陣列處理函數 ▌25-5 陣列資料排序 25-5-1 sort( ) 25-5-2 argsort( ) ▌25-6 簡單線性代數運算 25-6-1 一元二次方程式 25-6-2 解聯立線性方程式 ▌25-7 線性插入函數 ▌25-8 Numpy 的廣播功能 ▌25-9 檔案的輸入與輸出 25-9-1 讀取文字檔案 25-9-2 寫入文字檔案 ▌25-10 專題 – 3D 繪圖到3D 動畫 25-10-1 3D 繪圖的基礎觀念 25-10-2 建立3D 等高線 25-10-3 使用官方數據繪製3D 圖 25-10-4 使用scatter( ) 函數繪製3D 圖 25-10-5 繪製3D 圖增加視角 25-10-6 3D 動畫設計 ▌25-11 專題 – 遮罩觀念與數據分類
第26 章 Pandas 入門 - 高效資料操作與分析 ▌26-1 Series 26-1-1 使用串列list 建立Series 物件 26-1-2 使用Python 字典dict 建立Series物件 26-1-3 使用Numpy 的ndarray 建立Series物件 26-1-4 建立含索引的Series 物件 26-1-5 使用純量建立Series 物件 26-1-6 列出Series 物件索引與值 26-1-7 Series 的運算 ▌26-2 DataFrame 26-2-1 建立DataFrame 使用Series 26-2-2 欄位columns 屬性 26-2-3 Series 物件的name 屬性 26-2-4 使用元素是字典的串列建立DataFrame 26-2-5 使用字典建立DataFrame 26-2-6 index 屬性 26-2-7 將columns 欄位當作DataFrame物件的index ▌26-3 基本Pandas 資料分析與處理 26-3-1 索引參照屬性 26-3-2 直接索引 26-3-3 四則運算方法 26-3-4 邏輯運算方法 26-3-5 Numpy 的函數應用在Pandas 26-3-6 NaN 相關的運算 26-3-7 NaN 的處理 26-3-8 幾個簡單的統計函數 26-3-9 增加index 26-3-10 刪除index 26-3-11 排序 ▌26-4 讀取與輸出CSV 檔案 26-4-1 寫入CSV 格式檔案 26-4-2 讀取CSV 格式檔案 ▌26-5 讀取與輸出Excel 檔案 26-5-1 寫入Excel 格式檔案 26-5-2 讀取Excel 格式檔案
第27 章 Pandas 視覺化與時間序列 - 趨勢洞察與預測 ▌27-1 Pandas 繪圖 27-1-1 使用Series 繪折線圖表 27-1-2 使用DataFrame 繪圖表基本知識 27-1-3 直條圖的設計 27-1-4 一個圖表含不同數值資料 27-1-5 多個數值軸的設計 27-1-6 使用Series 物件設計圓餅圖 ▌27-2 時間序列(Time Series) 27-2-1 時間模組datetime 27-2-2 使用Python 的datetime 模組建立含時間戳的Series 物件 27-2-3 Pandas 的時間區間方法 27-2-4 將時間序列繪製折線圖 ▌27-3 專題:鳶尾花 27-3-1 網路爬蟲 27-3-2 將鳶尾花資料集轉成DataFrame 27-3-3 散點圖的製作 27-3-4 鳶尾花分類統計與直條圖
第28 章 網路爬蟲 - 自動化資料蒐集與整合 ▌28-1 上網不再需要瀏覽器了 28-1-1 webbrowser 模組 28-1-2 認識Google 地圖 28-1-3 用地址查詢地圖的程式設計 ▌28-2 下載網頁資訊使用requests 模組 ▌28-3 檢視網頁原始檔 28-3-1 以Chrome 瀏覽器為實例 28-3-2 檢視原始檔案的重點 28-3-3 列出重點網頁內容 ▌28-4 解析網頁使用BeautifulSoup 模組 28-4-1 建立BeautifulSoup 物件 28-4-2 基本HTML 文件解析 - 從簡單開始 28-4-3 網頁標題title 屬性 28-4-4 去除標籤傳回文字text 屬性 28-4-5 傳回所找尋第一個符合的標籤find( ) 28-4-6 傳回所找尋所有符合的標籤find_all( ) 28-4-7 HTML 屬性的搜尋 28-4-8 select( ) 和get( ) ▌28-5 網路爬蟲實戰 – 12 星座圖片下載 ▌28-6 網路爬蟲的潛在應用
第29 章 Python 操作台股 - 投資分析實戰 ▌29-1 Stock( ) 建構元 ▌29-2 Stock 物件屬性 ▌29-3 Stock 物件方法 ▌29-4 取得單一股票之即時資料realtime.get( )
第30 章 Sympy 與符號運算 - 數學推導自動化 ▌30-1 定義符號 30-1-1 name 屬性 30-1-2 定義多個符號變數 30-1-3 符號的運算 30-1-4 將數值代入公式 30-1-5 將字串轉為數學表達式 30-1-6 Sympy 模組支援的數學函數 ▌30-2 解方程式 30-2-1 解一元一次方程式 30-2-2 解一元二次方程式 30-2-3 解含未知數的方程式 ▌30-3 解聯立方程式 ▌30-4 微分與Sympy ▌30-5 積分與Sympy ▌30-6 Sympy 模組的繪圖功能
第31 章 AI 破冰之旅 - 從畢氏定理到餘弦相似度 ▌31-1 畢氏定理 – 影片相似度計算 31-1-1 基礎數學原理 31-1-2 畢氏定理應用在性向測驗情境 31-1-3 性向測驗的適性計算 31-1-4 畢氏定理應用在三維空間 31-1-5 畢氏定理應用在更高維的空間 31-1-6 計算電影相似度 ▌31-2 向量內積/ 餘弦相似度 – 推薦系統設計 31-2-1 協同工作的觀念 31-2-2 計算B 所幫的忙 31-2-3 向量內積的定義 31-2-4 兩條直線的夾角 31-2-5 向量內積的性質 31-2-6 餘弦相似度 31-2-7 音樂推薦系統設計 ▌31-3 人臉辨識(Face Recognition) ▌31-4 「畢氏定理」與「餘弦相似度」的AI 應用總結 31-4-1 畢氏定理的AI 應用 31-4-2 餘弦相似度的AI 應用 31-4-3 兩者比較及AI 使用時機
第32 章 scikit-learn 機器學習入門 - 基礎與流程 ▌32-1 網路購物數據調查 ▌32-2 使用scikit-learn 模組計算判定係數 32-2-1 安裝scikit-learn 32-2-2 計算判定係數評估模型 ▌32-3 預測未來值 ▌32-4 人工智慧、機器學習、深度學習 32-4-1 認識機器學習 32-4-2 機器學習的種類 32-4-3 監督學習 32-4-4 無監督學習 32-4-5 強化學習 ▌32-5 認識scikit-learn 數據模組datasets ▌32-6 監督學習 – 線性迴歸 32-6-1 訓練數據與測試數據 32-6-2 使用make_regression( ) 函數準備迴歸模型數據 32-6-3 建立訓練數據與測試數據使用train_test_split( ) 32-6-4 獲得線性函數的迴歸係數與截距 32-6-5 predict( ) 函數 32-6-6 迴歸模型判斷 ▌32-7 scikit-learn 產生數據 32-7-1 使用make_blobs( ) 函數準備群集數據 32-7-2 標準化資料 32-7-3 分割訓練資料與測試資料
第33 章 機器學習演算法 - 原理與應用全解析 ▌33-1 KNN(K-Nearest Neighbor) 33-1-1 KNN 在分類問題的應用 33-1-2 KNN 在迴歸問題的應用 ▌33-2 邏輯斯迴歸(Logistic regression) ▌33-3 支援向量機(Support Vector Machine) ▌33-4 決策樹(Decision Tree) 演算法 33-4-1 分類應用 33-4-2 迴歸應用 ▌33-5 無監督學習 - 群集分析 33-5-1 K-means 演算法 33-5-2 使用make_blobs( ) 函數準備群集數據 33-5-3 使用cluster.KMeans( ) 和fit( ) 函數作群集分析 33-5-4 標記群集點和群集中心 33-5-5 數據分群的簡單實例
第34 章 機器學習專題 - 波士頓房價預測實務 ▌34-1 從線性迴歸到多元線性迴歸 34-1-1 簡單線性迴歸 34-1-2 多元線性迴歸 ▌34-2 簡單資料測試 34-2-1 身高、腰圍與體重的測試 34-2-2 了解模型的優劣 ▌34-3 波士頓房價數據集 34-3-1 認識波士頓房價數據集 34-3-2 輸出數據集 34-3-3 波士頓房價測試數據的房價預估 34-3-4 殘差圖(Residual plot)
第35 章 機器學習專題 - 葡萄酒數據分析與分類 ▌35-1 認識葡萄酒數據 ▌35-2 使用KNN 演算法執行葡萄酒分類 35-2-1 設計葡萄酒分類程式 35-2-2 KNN 分類器結果評估 35-2-3 葡萄酒分類與效能分析實戰 ▌35-3 使用邏輯斯迴歸演算法執行葡萄酒分類
第36 章 機器學習專題 - 鐵達尼號生存預測 ▌36-1 程式設計必備知識one-hot 編碼 ▌36-2 認識鐵達尼號Titanic 數據集 ▌36-3 鐵達尼號專題實作 – 邏輯斯迴歸 ▌36-4 鐵達尼號專題實作 – 決策樹
第37 章 機器學習專題 - 糖尿病數據分析 ▌37-1 認識糖尿病數據集 ▌37-2 多元線性迴歸處理糖尿病數據
第38 章 機器學習專題 - 乳癌診斷模型訓練 ▌38-1 認識乳癌數據集 ▌38-2 支援向量機處理乳癌數據
第39 章 機器學習專題 - 手寫數字影像辨識 ▌39-1 認識手寫數字數據集 ▌39-2 隨機森林處理手寫數字數據集 39-2-1 隨機森林的應用 39-2-2 手寫數字數據集分類 ▌39-3 PCA 主成份分析
第40 章 動畫與遊戲 - Python 創意應用( 電子書) ▌40-1 繪圖功能 ▌40-2 尺度控制畫布背景顏色 ▌40-3 動畫設計 ▌40-4 反彈球遊戲設計 ▌40-5 專題- 使用tkinter 處理謝爾賓斯基三角形
附錄A 安裝與執行Python ( 電子書) A-1 Windows 作業系統的安裝Python 版 A-2 啟動Python 可執行檔案 A-3 找尋Python 可執行檔案 A-4 在Python Shell 編輯環境 A-5 進入編輯Python 程式環境
附錄B Anaconda、Spider 和Jupyter Notebook ( 電子書) B-1 下載安裝Anaconda B-2 Anaconda Prompt B-3 啟動Spider 整合環境 B-4 Jupyter Notebook 環境
附錄C 使用Google Colab 雲端開發環境( 電子書) C-1 進入Google 雲端 C-2 建立雲端資料夾 C-3 進入Google Colab 環境 C-4 編寫程式 C-5 儲存檔案 C-6 認識編輯區 C-7 新增加程式碼儲存格 C-8 更多編輯功能
附錄D 指令、函數索引表
附錄E 安裝第三方模組 ( 電子書) E-1 命令提示字元 E-2 系統多重安裝使用pip E-3 導入模組安裝更新版模組 E-4 安裝更新版模組 E-5 列出所安裝的模組 E-6 刪除模組 E-7 找尋更多模組 E-8 安裝新版pip
附錄F RGB 色彩表( 電子書)
附錄G 是非、選擇與實作題 - 習題檔案( 電子書)
附錄H ASCII 碼值表( 電子書)
附錄I ChatGPT 協助學習Python( 電子書) I-1 問ChatGPT 有關Python 基本觀念 I-2 Python 運算規則 I-3 Python 基本資料型態 I-4 程式除錯 I-5 輸出格式與內建函數說明 I-6 條件運算式 I-7 串列的應用 I-8 迴圈與重構程式 I-9 操作元組 I-10 字典 I-11 集合 I-12 函數 I-13 物件導向程式設計 I-14 設計與應用模組 I-15 檔案的輸入與輸出 I-16 正則表達式 I-17 Pillow 功能 I-18 詞雲功能 I-19 csv 檔案 I-20 圖表設計 I-21 網路爬蟲 I-22 機器學習入門 |
序
|