從Python快速入門到主流應用全面實戰!
蟬聯網路書店暢銷排行榜超過100週的Python學習新經典!
超過萬名讀者見證與近100位老師滿意的Python書籍
榮登各大通路電腦暢銷書/海外指名授權圖書
解決初學痛點,避免開發地雷,
融入熱門主題技術,結合250分鐘影音教學
從220個範例徹底掌握Python全面應用精髓!
Python可說是當今最熱門的程式語言,從網頁資料擷取、網站自動化測試、大數據分析、物聯網、機器學習,到駭客攻擊工具等主流議題,Python都占據了重要的地位。
本書以初學者的視角規劃學習地圖,並提供熱門主題實戰。從環境、語法、模組套件到主流技術應用,直接從實例學,讓學習者輕鬆入門,並能結合目前最受重視的實務運用,體驗Python最全面的應用魅力。
切入關鍵技術領域,快速入門與實戰!
體驗Python的開發無極限!
■快速佈署Python開發環境,熟悉編輯器與執行方式。
■詳細說明Python語法,由結構、變數、資料型態、運算式及判斷式進行學習引導,再深入迴圈、串列、元組、字典與函式等基礎且重要的內容。
■詳述近50種實用的Python模組套件,如:random、os、os.path、sys、shutil、glob、locale、ast、sqlite3、urlparse、requests、re、bs4、BeautifulSoup、urlopen、hashlib、selenium、time、matplotlib、pyplot、bokeh.plotting、json、facebook、pytube、tkinter、django、linebotapi、pandas、opencv、numpy、PIL.Image、functools、math、operator、subprocess、firebase、docx、pygame、win32com、win32com.client、areapackage.myClass、calculate、pyfirmata、Arduino、pyserial…等,分析使用方式與注意事項,並以實例演練。
■範例導引式學習,從小範例到專題應用實例。全新修訂並擴增實作內容,從11個專案實戰貼近實務需求,即學即用即上手。
■全面深入不同領域的應用主題,包括大數據擷取分析、網路爬蟲、公開資料應用、行動資料庫應用、資訊圖表繪製、PM2.5即時監測、自動化測試、Facebook貼文與照片下載、Office文件處理、YouTube影片下載、影音檔案控制、臉部影像辨識與驗證碼圖片破解、API應用、GUI使用者介面、大量檔案搜尋、批次檔案管理、執行排程、多媒體播放器,以及互動遊戲開發…等,將Python結合主流且新穎的應用,立即升級開發功力。
■因應軟硬整合與物聯網應用的需求,納入Python與Arduino進行連結互動的範例,進而能運用相同的方式應用到其他的硬體與感測器。
■新增重點技術,以及LINE Bot聊天機器人的製作與自動化訂票程式的開發專案,並學會打包專案執行檔,根據需求打造屬於自己的模組,跨入客製化強大功能的層級,提升專案開發效率。
■針對重點內容與專題提供影音輔助教學,迅速提升學習效率。
書附超值DVD:
範例程式檔/250分鐘關鍵影音教學/附錄PDF
目錄
01 建置Python開發環境
Python程式語言是一種物件導向、直譯式的電腦程式語言。根據權威機構統計,Python與C、Java 為目前最受歡迎的程式語言前三名。Python可在多種平台開發執行,本書以Windows系統做為開發平台,並以Anaconda模組做為開發環境,不但包含超過300種常用的科學資料分析模組,還內建Spyder(IDLE編輯器加強版)編輯器及Jupyter Notebook編輯器。
02 基本語法與結構控制
變數顧名思義,是一個隨時可能改變內容的容器名稱,當設計者使用一個變數時,應用程式就會配置一塊記憶體給此變數使用,以變數名稱做為辨識此塊記憶體的標誌,系統會根據資料型態決定配置的記憶體大小,設計者就可在程式中將各種值存入該變數中。用來指定資料做哪一種運算的是「運算子」,進行運算的資料稱為「 運算元」。程式的執行方式有循序式及跳躍式兩種,循序式是程式碼由上往下依序一列一列的執行。如果遇到需要決策時,可依結果執行不同的程式碼,這種方式就是跳躍式執行。
03 迴圈、資料結構及函式
Python中for迴圈用於執行固定次數的迴圈,while迴圈用於執行次數不固定的迴圈。串列的功能與變數類似,能提供儲存資料的記憶體空間。每一個串列擁有一個名稱,做為識別該串列的標誌,串列中每一個資料稱為元素,如此就可輕易儲存大量的資料儲存空間。元組的結構與串列完全相同,不同處在於元組的元素個數及元素值皆不能改變。字典的結構也與串列類似,其元素是以「鍵- 值」對方式儲存,這樣就可使用「鍵」來取得「值」。在一個較大型的程式中,通常會將具有特定功能或經常重複使用的程式,撰寫成獨立的小單元,稱為「函式」,當程式需要時即可呼叫函式執行。
04 檔案處理與SQLite資料庫
Python能夠大量快速的處理電腦系統中的檔案與資料夾,除了使用os模組進行目錄建立與刪除目錄、檔案刪除、執行作業系統命令等動作,也可以利用Python內建的open()函式開啟指定的檔案,並進行檔案內容的讀取、寫入或修改。Python內建嵌入式資料庫SQLite,利用檔案儲存整個資料庫,SQLite的特點是可以使用SQL語法管理資料庫,執行新增、修改、刪除和查詢。
05 網頁資料擷取與分析
許多人都非常喜歡使用Python在網頁上收集資料,不僅擷取方便,分析統計的功能也十分齊全。利用Python的urllib模組中urlparse函式可以輕易解析指定網址的內容,在接收傳回的ParseResult物件後,即可取出網址中各項有用的資訊。Python可以進一步使用requests函式讀取網頁原始碼,利用相關語法或正規表示式取得符合的資料。如果擷取的資料更複雜,Python可以藉由功能更為強大的網頁解析工具:Beautifulsoup,針對特定的網頁及目標加以擷取與分析。
06 網頁測試自動化
Python執行網頁測試的功能十分強大,甚至能藉由排程的動作讓所有過程自動化,對於許多人來說是不可多得的神器。hashlib模組可以判別檔案是否更改過,只要利用md5方法對指定的檔案進行編碼,即可進行比對。排程對於程式自動化相當重要,尤其是對於需要定時下載、更新的資料,只要善用作業系統的工作排程加以管理就能夠輕鬆達成。Selenium是相當著名的網頁自動化測試模組,它可以藉由指令自動操作網頁,達到測試的功能。Selenium也能讓許多在網頁上要大量操作的工作指令化,能在設定的時間內自動執行,功能相當強大。
07 圖表繪製
Python除了資料擷取進行分析之外,將相關數據繪製成統計圖表更是它的強項。Matplotlib是Python在2D繪圖領域使用最廣泛的模組,它能讓使用者很輕鬆地將數據圖形化,並且提供多樣化的輸出格式。Matplotlib功能強大,尤其在繪製各種科學圖形上表現更是優異。如果繪製的圖表不是非常複雜,小巧的Bokeh模組就足以應付,它所需要的資源只有Matplotlib的五分之一,卻已經能夠繪製出各種實用的圖表,並利用網頁的方式進行呈現。
08 實戰:Facebook貼文與照片下載
Facebook是目前最流行的社群網站,個人社交或是商業運用,似乎都離不開這個無形的領域。如何使用Python來進行Facebook上的操作,是許多人很有興趣的主題,這裡將以一些實用的功能進行實例的操作。本章重點在於了解如何使用Facebook應用程式的開發工具 :以Graph API Explorer學習如何進行Facebook功能的操作,讓Python透過facebooksdk模組,在取得存取權限後,可以透過 Facebook的API模組直接存取Facebook的資料再加以運用。
09 實戰:YouTube影片下載器
YouTube是目前最大的影音分享網站,其中有許多值得珍藏的影片,因此許多人皆有從YouTube網站下載影片的需求。本章將介紹如何利用Tkinter模組製作出容易操作、圖形化的使用者介面,再使用PyTube模組分析指定的YouTube網址,設定好影片品質及檔案類型後,把影片下載到本機中。
10 實戰:LINE Bot聊天機器人
LINE提供免費的「LINE Bot API試用」帳號申請,讓任何人都可以在LINE的平台上開發聊天機器人的多元應用。至今已有超過十萬個LINE Bot被開發使用,如果不會LINE Bot設計就落伍了!LINE Bot的經典範例是使用者傳送訊息給LINE Bot,LINE Bot就回覆相同訊息給使用者,就像鸚鵡學人說話一樣,通常戲稱為「鸚鵡」LINE Bot。LINE Bot開放了製作圖文選單的功能。 有了這個圖文選單的選項,LINE Bot就能以點選的方式執行特定的功能。
11 實戰:PM2.5即時監測顯示器
PM2.5是細懸浮微粒的污染指標,對人體的健康影響很大,因為現代人對於環境空氣品質的注重,讓
PM2.5 的數據受到社會的重視。行政院環保署環境資源資料開放平台有公佈PM2.5資料,而且每小時就更新一次,也成為許多人定時觀看的資訊。Python的Pandas模組不但可以自動讀取網頁中的表格資料,還可對資料進行修改、排序等處理,也可繪製統計圖表,對於資訊的擷取、整理以及顯示是不可多得的好工具。本章將撰寫PM2.5即時監測顯示器,程式可以直接讀取行政院環保署環境資源資料開放平台的資料,在整理後顯示,讓使用者隨時都可取得最新監測資料。
12 實戰:臉部辨識及驗證碼圖片破解
OpenCV是一個開放原始碼、跨平台的電腦視覺程式庫,可以在商業和研究領域中免費使用,目前已應用於人機互動、臉部識別、動作識別、運動跟蹤等不同領域。要進行特定圖像辨識最重要的是要有辨識對象特徵檔,OpenCV已內建臉部辨識特徵檔,只要使用OpenCV的CascadeClassifier類別即可辨識臉部。在許多網站都會利用圖形驗證碼來阻擋網站上不當或惡意的訪問動作,如果要進行驗證碼圖片破解,要將圖形驗證碼轉換為文字。Python可以透過圖形處理模組將大部分圖片背景去除,再以Tesseract模組以OCR功能讀取圖片文字進行破解。
13 實戰:Firebase即時資料庫應用
Firebase是專為行動應用開發者所提供的後端服務平台,Firebase所提供的資料庫和傳統資料庫使用表格式資料表儲存資料的方式不同,而是使用Key、Value字典型態的結構來儲存資料,使用上不僅輕量,結構相當彈性,而且會立即反應。Python可透過python-firebase模組來存取Firebase資料庫,進而開發實用的應用程式。本章將利用Python的功能使用python-firebase模組,將英文單字的資料儲存在Firebase即時資料庫中,使用者可以使用英文單字查詢中文說明。
14 實戰:批次更改資料夾檔案名稱與搜尋
Python對於檔案處理有很突出的表現,也是很多人經常使用的功能。在這一章當中,將統整Python檔案處理的技巧,例如大批檔案的複製、依指定的名稱儲存檔案、找出重複的照片、將所有圖檔更改為相同的大小等需求,以實際的範例進行說明。除此之外,使用者也可以利用Python程式進行檔案內容文字的搜尋,只要指定資料夾或檔案,甚至是整台電腦,都可以在極短的時間內完成搜尋的動作。
15 實戰:音樂播放器
Python也有處理多媒體檔案的能力,除了圖片之外,音樂、音效的播放也很重要。如果要播放音效,可以利用pygame模組中的mixer物件。mixer物件中可以使用Sound和music物件進行音效的播放。不同的是Sound物件適合播放較短的音效,如OGG和WAV音效檔;而music物件除了也可以播放OGG和 WAV音效檔,也可以播放時間較久旳MP3音效檔,並進行相關的控制。
16 實戰:自動化高鐵訂票
Chrome瀏覽器的Katalon Recorder擴充功能可以產生讓Selenium執行的程式碼,使得Selenium 能夠以程式輕鬆完成網頁自動化。Selenium提供許多方法取得網頁
01 建置Python開發環境
Python程式語言是一種物件導向、直譯式的電腦程式語言。根據權威機構統計,Python與C、Java 為目前最受歡迎的程式語言前三名。Python可在多種平台開發執行,本書以Windows系統做為開發平台,並以Anaconda模組做為開發環境,不但包含超過300種常用的科學資料分析模組,還內建Spyder(IDLE編輯器加強版)編輯器及Jupyter Notebook編輯器。
02 基本語法與結構控制
變數顧名思義,是一個隨時可能改變內容的容器名稱,當設計者使用一個變數時,應用程式就會配置一塊記憶體給此變數使用,以變數名稱做為辨識此塊記憶體的標...