本書為 Python 軟體基金會主席親自撰寫的最新版 Python 經典, 中文版由施威銘研究室監修, 書中針對原書進行大量補充, 並適當添加註解, 幫助讀者能更加理解內容。

內容簡介

別再用 C/Java 邏輯來寫 Python 程式了!

Python 軟體基金會主席 親自指點、引領入門
教您學 Python, 更讓您懂 Python
用真正 Python 思維寫出流利的 Pythonic 程式碼

Python 是目前的當紅程式語言, 更是進入 AI 機器學習必備的基礎知識, 學習 Python 已經蔚為風潮。但是大部分書籍、文件都只是教語法, 洋洋灑灑一大篇語法說明, 學了之後, 真的能懂 Python?知道怎麼寫 Python 嗎?

本書不只是說明語法, 更告訴您 Python 與其他程式語言的不同之處, 以及這些特點背後的原因, 讓您真的懂 Python、用 Python!

本書特色 :

翻譯書都看不懂?新手免害怕, 詳細的解說+流暢的翻譯, 讓你也看得懂、學得會, 領你進門更帶你修練成老手

本書為 Python 軟體基金會主席親自撰寫的最新版 Python 經典, 中文版由施威銘研究室監修, 書中針對原書進行大量補充, 並適當添加註解, 幫助讀者能更加理解內容。

其他書看不到的內容, 只存在於老手間的獨門心法, 就讓這本書一一為您詳細說明。例如:

● Python 全域變數不是真正全域?
● Python 函式的區域變數是由賦值與否來決定的?
● 為何 Python 函式都不檢查參數值, 先用了出錯再處理?
● Python 物件沒有真正的私有屬性, 資訊都不用封裝隱藏了嗎?
● 鴨子型別是什麼?我實在不懂這跟鴨子到底有什麼關係?
● 為什麼 Python 函式可以一次 return 多個傳回值?
● Pythonic 這個詞好像很厲害, 是什麼意思?
● Python 的 list[n:m] 切片為何要有頭無尾?
● 為什麼 Python 要求程式每行結尾不要超過 80 個字?
● Python 的型別與類別是同義詞?

本書相關資源網頁如下, 請登錄下載範例程式及 Bonus:
http://www.flag.com.tw/bk/t/f9749

也歡迎加入本書社群, 和技術者們直接對話!
「從做中學 Learning by doing」粉絲專頁
(https://www.facebook.com/flaglearningbydoing/)

產品目錄

第1篇 初始篇



第1章 關於Python

1.1 Python簡介

1.2 Python的優勢

1.3 Python表現不佳的地方

1.4 為什麼要學習 Python 3?



第2章 開發環境安裝與設定

2.1 安裝Python 開發環境

2.2 設定Python 開發環境



第3章 執行與測試Python程式



第2篇 基礎篇



第4章 絕對的基礎

4.1 縮排及區塊結構

●老手帶路:Python 的縮排原則

4.2 註解

4.3 變數及其設定

●老手帶路:Python中的變數:是水桶還是標籤?

4.4 運算式

4.5 字串

4.6 數字

●老手帶路:Python 的除法特性

●老手帶路:避免使用 from import *

4.7 None值

4.8 取得使用者的輸入

4.9 內建算符

4.10 基本Python風格與名稱命名慣例



第5章 基本資料結構:list、tuple、set

5.1 list類似陣列

5.2 list的索引與切片

●老手帶路:為什麼Python的切片索引要有頭無尾?

5.3 修改list

5.4 list的排序

5.5 其他常用的list操作

5.6 多層list和深層副本

5.7 tuple

●老手帶路:自動打包與自動解包的功用

●老手帶路:您寫的Python程式夠Pythonic嗎?

5.8 set



第6章 字串

6.1 字串為字元序列(sequence)

6.2 基本的字串操作

6.3 特殊字元和轉義字元

●老手帶路:程式敘述過長的缺點與長字串的建立

6.4 字串的method

6.5 從物件轉換成字串

6.6 使用format() method來格式化字串

●老手帶路:使用格式化字串的優點

6.7 以 % 算符來格式化字串

6.8 以 f-strings來格式化字串

6.9 bytes物件

6.10 使用print() 控制字串輸出



第7章 字典

7.1 什麼是字典?

7.2 其他字典操作

7.3 字數統計

7.4 什麼型別可以當作鍵來使用?

7.5 稀疏矩陣

7.6 以字典作為快取

7.7 字典的效率



第8章 流程控制

8.1 while 迴圈

●老手帶路:while-else的使用場合

8.2 if-elif-else 判斷式

●老手帶路:使用簡潔易懂的單行if條件運算式

8.3 for 迴圈

8.4 用生成式快速建立新的list與字典

●老手帶路:用索引刪除list元素的隱形Bug

8.5 敘述、區塊、和縮排

8.6 布林值與運算式的真假運算

●老手帶路:用Short-circuit Evaluation代替if判斷式

8.7 寫一個簡單的程式來分析文字檔



第9章 函式

9.1 基本函式定義

9.2 函式的參數定義與引數傳遞

9.3 用可變 (mutable)物件作為引數時要小心

●老手帶路:用可變物件做為函式參數預設值的問題

9.4 local、global、nonlocal變數

●老手帶路:小心區域變數未賦值先使用

9.5 將變數參照到函式

●老手帶路:將函式當成引數來傳遞與其適用場合

9.6 lambda 匿名函式

●老手帶路:使用 lambda匿名程式的優缺點

9.7 產生器(走訪器)函式

9.8 修飾器(Decorator)

●老手帶路:修飾器(decorator)的用途



第10章 模組與變數可視範圍

10.1 什麼是模組?

10.2 第一個模組

10.3 import 敘述的三種形式

10.4 模組搜尋路徑

10.5 模組中的私有名稱

10.6 函式庫與第三方模組

10.7 Python命名空間和變數可視範圍

●老手帶路:Python全域變數的可視範圍不涵蓋全程式

●老手帶路:從模組import變數容易發生的問題

●老手帶路:在主程式與不同模組之間共享變數資料



第11章 Python程式檔

11.1 將主程式放入主控函式

11.2 在Linux/UNIX讓Python程式檔變成執行檔

11.3 macOS上的Python程式檔

11.4 Windows中Python程式檔的啟動方式

11.5 程式與模組

11.6 發佈Python應用程式



第12章 使用檔案系統

12.1 os 和 os.path 與 pathlib之比較

12.2 路徑和路徑名稱

12.3 取得檔案相關的資訊

12.4 更多檔案系統操作

12.5 用os.walk()處理所有子目錄中的所有檔案



第13章 檔案讀寫

13.1 開啟檔案與file物件

13.2 關閉檔案

13.3 以寫入模式或其他模式開啟檔案

13.4 讀寫文字檔和二進位檔案

13.5 用pathlib讀取與寫入

13.6 標準輸入/輸出與重新導向

13.7 用struct模組讀取結構化二進位資料

13.8 將物件序列化後保存到檔案

13.9 Shelve 物件



第14章 例外處理

14.1 什麼是例外

●老手帶路:LBYL(事先檢查避免出錯)與EAFP(先做了出錯再處理)

14.2 Python的例外機制

●老手帶路:EAFP錯誤處理風格的優缺點

●老手帶路:用例外處理與Guard Clauses讓程式流程更清楚

14.3 使用with資源管理器



第3篇 進階篇



第15章 類別與物件導向程式設計

15.1 類別Class

15.2 物件變數與__init__特殊method

15.3 物件方法method (物件的函式)

15.4 類別變數class variables

15.5 靜態方法static method與

15.6 類別的繼承inheritance

15.7 類別變數與物件變數的繼承

15.8 Python類別基礎的重點複習

15.9 私有變數與私有方法

●老手帶路:有別於資訊隱藏傳統! Python對於物件內部資料的公開風格

15.10 以 @property 修飾器來實作更靈活的物件變數

15.11 物件的變數視野與命名空間

15.12 物件的記憶體回收機制

15.13 多重繼承



第16章 常規表達式

16.1 什麼是常規表達式

16.2 具有特殊字元的常規表達式

16.3 常規表達式與原始字串

16.4 從字串中提取符合樣式的文字

16.5 用常規表達式搜尋取代字串



第17章 物件的型別與特殊method

17.1 取得物件的型別

17.2 比較與檢查型別

17.3 取得物件所屬類別與類別繼承結構

17.4 鴨子型別(Duck Typing)

●老手帶路:鴨子型別在實際應用上的彈性

17.5 何謂物件的特殊method

17.6 用__getitem__自訂可走訪與

17.7 用__setitem__自訂可用索引賦值的

17.8 賦予自訂物件更多類似list的功能

17.9 繼承內建型別來產生新的型別

17.10 使用特殊method的時機



第18章 套件

18.1 什麼是套件

18.2 套件的運作方式

18.3 套件的具體範例

18.4 __all__ 屬性

18.5 套件的正確使用方式



第19章 使用Python 函式庫

19.1 「內建電池」:標準函式庫

19.2 用安裝檔新增Python函式庫

19.3 使用pip 安裝Python函式庫

19.4 virtualenv虛擬環境

19.5 PyPI(Python套件索引)



第4篇 實戰篇



第20章 基本的檔案整理

20.1 問題:永無止境的資料檔案流

20.2 場景:每天都會收到的產品資訊檔

20.3 更有組織的檔案整理方式

20.4 節省儲存空間: 壓縮和修剪



第21章 處理純文字、CSV、Excel資料檔

21.1 資料的提取、轉換、載入(ETL)

21.2 處理純文字檔

21.3 Excel 試算表檔案

21.4 資料清理

21.5 寫入資料檔



第22章 網路下載與解析資料

22.1 使用Python下載檔案

22.2 透過API取得資料

22.3 解析JSON與XML格式

22.4 解析網站HTML資料



第23章 存取資料庫

23.1 關聯式資料庫

23.2 SQLite:使用sqlite3資料庫

●老手帶路:防止SQL Injection攻擊

23.3 使用MySQL、PostgreSQL和

23.4 使用ORM讓資料庫更容易處理

23.5 NoSQL 資料庫

23.6 用Redis 儲存Key-Value資料庫

23.7 用MongoDB儲存文件資料庫



第24章 資料分析

24.1 用於資料分析的Python工具

24.2 Jupyter Notebook

24.3 Python和pandas

24.4 用pandas進行資料ETL

24.5 資料彙總與操弄

24.6 繪製資料進行視覺化

24.7 什麼情況不適合使用pandas



第25章 實例應用:繪製氣溫長期變化圖

25.1 挑選合適的氣象站

25.2 下載資料繪製氣溫變化圖



BONUS PM2.5 空氣品質警報通知:簡訊+LINE (中文版獨家/旗標特製)

作者介紹

Python 軟體基金會主席 Naomi Ceder

作者 Naomi Ceder 為 Python 軟體基金會主席, 有超過 30 年的程式設計經驗, 從 2001 年開始使用 Python, 已經廣泛地將 Python 應用於系統管理、網頁程式、資料庫管理、數據分析等各種實務場合, 同時也擔任 Python 教學的講師, 學生從 12 歲初學者到專業人士, 致力於將 Python 的優點推廣給所有人。

規格

誠品貨碼 / 2681810084008
ISBN13 / 9789863125914
ISBN10 / 9863125911
EAN貨碼 / 9789863125914
頁數 / 576
開數 / 18K
注音版 / 否
裝訂 / P:平裝
語言 / 1:中文/繁體
級別 / N:無

退貨說明

退貨須知:

  1. 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
  2. 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。

依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:

  1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
  2. 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
  3. 報紙、期刊或雜誌。
  4. 經消費者拆封之影音商品或電腦軟體。
  5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
  6. 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
  7. 國際航空客運服務。

若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:

  1. 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
  2. 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
  3. 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
  4. 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  5. 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  6. 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送