2020-01-06 20:48:2094app
Python初學特訓班(第三版):從快速入門到主流應用全面實戰(附250分鐘影音教學/範例程式)
附書DVD*1
從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
作者介紹
作者簡介
文淵閣工作室
一個致力於資訊圖書創作二十餘載的工作團隊,擅長用輕鬆詼諧的筆觸,深入淺出介紹難懂的 IT 技術,並以範例帶領讀者學習電腦應用的大小事。
我們不賣弄深奧的專有名辭,奮力堅持吸收新知的態度,誠懇地與讀者分享在學習路上的點點滴滴,讓軟體成為每個人改善生活應用、提昇工作效率的工具。
舉凡程式開發、文書處理、美工動畫、攝影修片、網頁製作,都是我們專注的重點,而不同領域有各自專業的作者組成,以進行書籍的規劃與編寫。一直以來,感謝許多讀者與學校老師的支持,選定為自修用書或授課教材。衷心期待能盡我們的心力,幫助每一位讀者燃燒心中的小宇宙,用學習的成果在自己的領域裡發光發熱!
我們期待自己能在每一本創作中注入快快樂樂的心情來分享, 也期待讀者能在這樣的氛圍下快快樂樂的學習。
官方網站:www.e-happy.com.tw
FB粉絲團:www.facebook.com/ehappytw
文淵閣工作室
一個致力於資訊圖書創作二十餘載的工作團隊,擅長用輕鬆詼諧的筆觸,深入淺出介紹難懂的 IT 技術,並以範例帶領讀者學習電腦應用的大小事。
我們不賣弄深奧的專有名辭,奮力堅持吸收新知的態度,誠懇地與讀者分享在學習路上的點點滴滴,讓軟體成為每個人改善生活應用、提昇工作效率的工具。
舉凡程式開發、文書處理、美工動畫、攝影修片、網頁製作,都是我們專注的重點,而不同領域有各自專業的作者組成,以進行書籍的規劃與編寫。一直以來,感謝許多讀者與學校老師的支持,選定為自修用書或授課教材。衷心期待能盡我們的心力,幫助每一位讀者燃燒心中的小宇宙,用學習的成果在自己的領域裡發光發熱!
我們期待自己能在每一本創作中注入快快樂樂的心情來分享, 也期待讀者能在這樣的氛圍下快快樂樂的學習。
官方網站:www.e-happy.com.tw
FB粉絲團:www.facebook.com/ehappytw
目錄
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提供許多方法取得網頁元素(element),取得的網頁元素其location屬性儲存該網頁元素的位置(x、y 座標),size屬性儲存該網頁元素的大小(長度及寬度),我們可以利用這些資訊擷取網頁元素圖形。本專題採取變通的方式:先擷取高鐵訂票網頁的驗證碼圖形,接著顯示驗證碼圖形讓使用者輸入,其餘訂票過程就由程式自動完成。
附錄A 擴充實戰:Word文件處理
Office的文件是日常生活工作常用到的文件格式,其中Word格式的檔案更是重要。Python語言可透過Win32com模組對Microsoft Office文件進行存取,而Python已內含Win32com模組,不需另外安裝。若要使用Win32com模組處理Microsoft Office文件,電腦必須已安裝Microsoft Office軟體。本章利用Win32com模組製作兩個實際應用:自動建立整個月份的營養午餐菜單Word文件,及自動取得指定目錄中所有Word文件 ( 包含子目錄),並對所有Word檔案進行置換文字功能。
附錄B 擴充實戰:PyGame遊戲開發
遊戲開發是許多程式語言很喜歡的一個領域,因為遊戲開發需要使用的技術範圍相當的廣,除了多媒體音效、圖片動畫,程式設計應用更是其中的核心。PyGame是為了讓Python能夠進行遊戲開發工作所發展出來的模組,它能幫助Python控制音效音樂、圖片動畫,並進行程式的運作,是一個十分強大,功能完整的模組。在本章中將詳細說明PyGame 的使用方式,並利用實例範例帶領讀者學習其中重要的技巧,最後再利用一個有趣又好玩的遊戲進行專題開發,讓您也可以利用Python快速的進入遊戲開發的世界。
附錄C 將Python打包成執行檔
許多人想要將完成的Python應用程式分享給其他人使用,但麻煩的是不是每一台電腦都會安裝 Python以及相關的模組。這時,就必須要使用包裝工具將Python應用程式打包成exe執行檔,才可以在其他機器上執行。PyInstaller有兩種製作exe檔的方式:第一種方式是將製作出的檔案皆放在同一個目錄下,這是預設的方式,稱為onedir。第二種方式是加上「-F」參數將製作出的檔案包裝成一個獨立的執行檔,稱為onefile。
附錄D Python的類別、物件與自製模組開發
Python是一種物件導向程式語言,可以建立類別後再根據類別建立物件。類別也可以繼承,被繼承的類別稱為父類別(parent class)或基底類別(base class),繼承的類別稱為子類別(child class)或行生類別(derived class),子類別可以繼承父類別中所有共用屬性和方法。使用 Spyder 除了建立檔案,也可以建立專案,然後在專案中再建立目錄和檔案。一個較大型專案,程式是由許多類別或函式組成,為了程式的分工和維護,可以適度地將程式分割成許多的模組,然後再呼叫並匯入這些模組。
附錄E Python軟硬整合:使用Arduino
Arduino IDE內建了各種應用的Firmata韌體,透過Firmata韌體,Python程式就可以使用USB串列埠與Arduino作傳輸,達到由Python控制Arduino的目標。PyFirmata模組可以讓Python程式和已上傳Firmata韌體的Arduino板子,透過USB串列埠作資料傳輸,也就是說可以利用Python程式控制Arduino。要在Python中撰寫程式控制Arduino, 必須在電腦中安裝Python的pySerial模組,同時也要撰寫並上傳Arduino程式,透過pySerial模組和Arduino進行通訊。
(附錄A~E為PDF電子檔形式,請見書附DVD)
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提供許多方法取得網頁元素(element),取得的網頁元素其location屬性儲存該網頁元素的位置(x、y 座標),size屬性儲存該網頁元素的大小(長度及寬度),我們可以利用這些資訊擷取網頁元素圖形。本專題採取變通的方式:先擷取高鐵訂票網頁的驗證碼圖形,接著顯示驗證碼圖形讓使用者輸入,其餘訂票過程就由程式自動完成。
附錄A 擴充實戰:Word文件處理
Office的文件是日常生活工作常用到的文件格式,其中Word格式的檔案更是重要。Python語言可透過Win32com模組對Microsoft Office文件進行存取,而Python已內含Win32com模組,不需另外安裝。若要使用Win32com模組處理Microsoft Office文件,電腦必須已安裝Microsoft Office軟體。本章利用Win32com模組製作兩個實際應用:自動建立整個月份的營養午餐菜單Word文件,及自動取得指定目錄中所有Word文件 ( 包含子目錄),並對所有Word檔案進行置換文字功能。
附錄B 擴充實戰:PyGame遊戲開發
遊戲開發是許多程式語言很喜歡的一個領域,因為遊戲開發需要使用的技術範圍相當的廣,除了多媒體音效、圖片動畫,程式設計應用更是其中的核心。PyGame是為了讓Python能夠進行遊戲開發工作所發展出來的模組,它能幫助Python控制音效音樂、圖片動畫,並進行程式的運作,是一個十分強大,功能完整的模組。在本章中將詳細說明PyGame 的使用方式,並利用實例範例帶領讀者學習其中重要的技巧,最後再利用一個有趣又好玩的遊戲進行專題開發,讓您也可以利用Python快速的進入遊戲開發的世界。
附錄C 將Python打包成執行檔
許多人想要將完成的Python應用程式分享給其他人使用,但麻煩的是不是每一台電腦都會安裝 Python以及相關的模組。這時,就必須要使用包裝工具將Python應用程式打包成exe執行檔,才可以在其他機器上執行。PyInstaller有兩種製作exe檔的方式:第一種方式是將製作出的檔案皆放在同一個目錄下,這是預設的方式,稱為onedir。第二種方式是加上「-F」參數將製作出的檔案包裝成一個獨立的執行檔,稱為onefile。
附錄D Python的類別、物件與自製模組開發
Python是一種物件導向程式語言,可以建立類別後再根據類別建立物件。類別也可以繼承,被繼承的類別稱為父類別(parent class)或基底類別(base class),繼承的類別稱為子類別(child class)或行生類別(derived class),子類別可以繼承父類別中所有共用屬性和方法。使用 Spyder 除了建立檔案,也可以建立專案,然後在專案中再建立目錄和檔案。一個較大型專案,程式是由許多類別或函式組成,為了程式的分工和維護,可以適度地將程式分割成許多的模組,然後再呼叫並匯入這些模組。
附錄E Python軟硬整合:使用Arduino
Arduino IDE內建了各種應用的Firmata韌體,透過Firmata韌體,Python程式就可以使用USB串列埠與Arduino作傳輸,達到由Python控制Arduino的目標。PyFirmata模組可以讓Python程式和已上傳Firmata韌體的Arduino板子,透過USB串列埠作資料傳輸,也就是說可以利用Python程式控制Arduino。要在Python中撰寫程式控制Arduino, 必須在電腦中安裝Python的pySerial模組,同時也要撰寫並上傳Arduino程式,透過pySerial模組和Arduino進行通訊。
(附錄A~E為PDF電子檔形式,請見書附DVD)
序
序
Python因為其可應用範圍廣及可延伸主題多,且學習門檻相對低,故成為目前最熱門的程式語言。筆者在了解了眾多入門使用者可能遇到的困難及瓶頸,規劃出相對應的章節,希望讀者能在這樣的安排下快速進入Python程式的開發領域,並能進一步將成品應用在實務當中。
本書規劃了Python快速入門與專題應用二大架構,讓初學者能藉由章節的進行,循序漸進的熟悉程式語法的內容,最後能進行專題的開發。
本書編寫特點如下:
1.快速建置開發環境,熟悉編輯器與執行方式,並詳細說明如何因應需求建置不同的虛擬環境,讓使用者能夠快速的切換,以利程式的開發與測試。
2.詳述Python的語法,由程式結構、變數、資料型態、運算式及判斷式進行引導,再深入迴圈、串列、元組、字典及函式等重要內容。每個單元都會利用實際的範例進行教學,再加上整合的範例加深學習的印象。
3.針對Python 的特性以不同的章節介紹重要的功能,包括檔案批次處理、SQLite資料庫、網頁資料分析擷取、圖表繪製與分析,讓使用者能由相關的模組中學習到進階的技巧,並能扎實的了解使用的方式。
4.實戰是最好的學習成效驗收,本書利用不同主題的專案進行開發,讓您體驗到不同的領域。包括利用Python來操作Facebook、YouTube影片下載、LINE Bot、公開資料的擷取應用、臉部辨識與驗證碼圖片破解、Firebase即時資料庫、批次更改大量資料與搜尋、多媒體播放器、線上訂票程式等,都是十分有趣而實用的主題,可以立即升級您的學習層次。
5.Python執行所需的環境如何分享給其他朋友或客戶?內容特別加入了Python編譯打包成執行檔案的教學,讓程式可以直接分享,直接執行!
6.提供重點內容影音教學,除了環境佈置與程式包裝之外,每個實戰的專題都錄製了操作教學影片,閱讀內容操作時輔以影片,更能提升學習效率。
希望本書內容能對於初學入門的朋友有所幫助,讓我們一起進入Python的世界!
Python因為其可應用範圍廣及可延伸主題多,且學習門檻相對低,故成為目前最熱門的程式語言。筆者在了解了眾多入門使用者可能遇到的困難及瓶頸,規劃出相對應的章節,希望讀者能在這樣的安排下快速進入Python程式的開發領域,並能進一步將成品應用在實務當中。
本書規劃了Python快速入門與專題應用二大架構,讓初學者能藉由章節的進行,循序漸進的熟悉程式語法的內容,最後能進行專題的開發。
本書編寫特點如下:
1.快速建置開發環境,熟悉編輯器與執行方式,並詳細說明如何因應需求建置不同的虛擬環境,讓使用者能夠快速的切換,以利程式的開發與測試。
2.詳述Python的語法,由程式結構、變數、資料型態、運算式及判斷式進行引導,再深入迴圈、串列、元組、字典及函式等重要內容。每個單元都會利用實際的範例進行教學,再加上整合的範例加深學習的印象。
3.針對Python 的特性以不同的章節介紹重要的功能,包括檔案批次處理、SQLite資料庫、網頁資料分析擷取、圖表繪製與分析,讓使用者能由相關的模組中學習到進階的技巧,並能扎實的了解使用的方式。
4.實戰是最好的學習成效驗收,本書利用不同主題的專案進行開發,讓您體驗到不同的領域。包括利用Python來操作Facebook、YouTube影片下載、LINE Bot、公開資料的擷取應用、臉部辨識與驗證碼圖片破解、Firebase即時資料庫、批次更改大量資料與搜尋、多媒體播放器、線上訂票程式等,都是十分有趣而實用的主題,可以立即升級您的學習層次。
5.Python執行所需的環境如何分享給其他朋友或客戶?內容特別加入了Python編譯打包成執行檔案的教學,讓程式可以直接分享,直接執行!
6.提供重點內容影音教學,除了環境佈置與程式包裝之外,每個實戰的專題都錄製了操作教學影片,閱讀內容操作時輔以影片,更能提升學習效率。
希望本書內容能對於初學入門的朋友有所幫助,讓我們一起進入Python的世界!
Copyright © since 1995 books.com.tw All Rights Reserved.
詳細介紹網址https://joymall.co/2d8WD