Python 進階課程:觀念、語法、專案、爬蟲
關於課程
課程包含
課程時長
課程總人數
觀看限制
學習升級
最新消息
課程內容
隨著寫程式日漸受到重視,許多同學紛紛踏上自學之旅。然而,進階資源稀少且零散,同學難以確定學習方向與學習深度,要自己提升程式能力並不容易。因此,課程綜觀程式領域,精選重點知識,大幅減少同學摸索的時間成本,協助同學有效地提升寫程式的觀念與能力。
- 釐清觀念
- 學習程式的進階原理,有助於釐清同學不確定的觀念,有效率地提升寫程式的整體能力。
- 程式設計
- 透過實作專案,帶領同學分析寫程式當下的設計考量,引導同學真正掌握自我開發的能力。
- 大型專案
- 市面上少有大型專案的實作教學,學會製作進階程式專案,對求職、實用上有很大的幫助。
- 全面啟動
- 課程時數約37小時,分成五大類別:觀念、語法、進階專案、爬蟲、延伸教學(瀏覽器自動化、軟硬體結合、認識AI)
課程分成五大部分:觀念、語法、專案、爬蟲、延伸
延伸教材(章節 7 起)將持續製作推出,預計於 2020/12/31 前完成推出,單元內容、名稱、排序等保留微調空間以便製作上最佳狀況呈現。
章節 1 - 開場
如同基礎課程,課程有專屬的線上討論區,教大家如何加入後,再以一個前導單元「程式語言的差別」開場,讓大家了解為什麼世界上這麼多程式語言,以及 Python 跟其他程式語言的差別是什麼。
單元 1 - 前言 單元 2 - 如何加入線上討論區 單元 3 - 程式語言的差別
章節 2 - 前置作業
在進入教學前,為了確保大家都有安裝好需要使用的程式 (Python, Sublime Text, Git)。這邊附上基礎課程裡的安裝教學影片。
單元 1 - 將 Sublime Text 的 tab 換成空格 單元 2 - [來自基礎課程] 安裝 Python 單元 3 - [來自基礎課程] Mac - 安裝 Python 單元 4 - [來自基礎課程] 檢查 Python 是否安裝正確 單元 5 - [來自基礎課程] 安裝 Sublime Text 單元 6 - [來自基礎課程] 安裝 Git 單元 7 - [來自基礎課程] Git 初始設定
章節 3 - 進階觀念
如同課程介紹,多數同學因為只會程式基礎,缺乏對寫程式更深層的了解,自己嘗試寫程式時,容易面臨各式各樣的疑惑,而這個章節就是你的解惑大池。除了提升更細緻對 Python 的了解,值得一提的是,大部分這些觀念並非 Python 獨有,而是共通於各種程式語言的核心。
單元 1 - 參數(引數)傳遞模式 Argument-Passing Mode 單元 2 - 命名空間 Namespace 單元 3 - 範圍 Scope 單元 4 - 底線在命名中的各種情況與涵義 單元 5 - 雙底線方法 Dunder Methods 單元 6 - 繼承 Inheritance 單元 7 - 繼承 - 相關進階觀念 單元 8 - 抽象類別 Abstract Class 單元 9 - 裝飾器 Decorator 單元 10 - 裝飾器 Decorator Part 2 作業 1 - 練習寫 Decorator 單元 11 - 閉包 Closure 單元 12 - Property 裝飾器 單元 13 - Staticmethod & Classmethod
章節 4 - 進階語法
同學已經會了程式基礎,一定很有感觸語法在寫程式裡只是「工具」而已,怎麼使用這些工具才是最重要的。 這邊將介紹幾個先前還沒教到的語法,除了讓大家認識更多的工具,更讓大家知道怎麼使用這它們。
單元 1 - Comment & Docstring 單元 2 - 字串格式化 String Formatting 單元 3 - 例外捕捉 Exception Handling 單元 4 - 可迭代物與迭代器 Iterable & Iterator 單元 5 - 產生器 Generator 單元 6 - 其他進階語法: Enumerate Map Lambda Filter Zip
學到這邊,相信同學已經對寫程式的了解與能力增加了許多。但除了觀念、語法上的進步,製作專案的能力也需要提升,因此來到第五章節:
章節 5 - 製作進階專案
來到了製作進階專案的部分,是本課程相當重要的部分。
只會基礎程式的同學一定有感,如果想做有複雜性的程式,因為缺乏以上單元教到的進階觀念,製作時容易有各式各樣的困惑,而其中有很大部分在於,根本不知道如何架構程式碼、檔案、資料夾。市面上很少、幾乎沒有「專案方面」的教材,因此對於多數學習寫程式的人來講,大部分都是經過很多年的摸索,搜尋,越看越多別人的專案,才慢慢建立這方面的知識、經驗。
除了資源少以外,另一個關鍵原因是大多教材都是「寫好的程式碼」。而寫程式的過程中,有太多東西是「邊寫邊考量」,只看寫好的程式碼等於跳過了中間的思考過程,所以變成看得懂寫好的程式碼,但無法自己寫出來。
跟學開車很像,如果我只跟你說:"這個踏板是油門,這是煞車,來,你自己想辦法開到美國",恐怕沒人到的了。但如果開過一次給你看,再把鑰匙給你,未來不管你要開到哪,路途中你都會時常想到示範中,面臨同樣問題時的抉擇,可以省去最費時的迷惘抉擇時間。
因此這個章節將示範製作一個進階專案,並同時解釋所有設計上的順序、考量、修改、抉擇,相信會大幅提升同學製作專案的能力。
專案的功能是產出一個 Youtube 片段集合,把某頻道中講到某個詞的部分合併起來。
章節的重點在於製作專案中的流程以及專案架構的相關知識,專案中使用的素材,著作權歸於原創作者所有。提醒同學在操作過程中,需注意Youtube 平台的服務條款,在使用上需多留意相關規範。
- 輸入 (input):Youtube 頻道、要搜尋的字/詞彙
- 輸出 (output):Youtube頻道裡提到該 (字/詞彙) 的部分所合併成的影片
- 範例 (example):以Supercar Blondie的頻道,去抓取英文字 "incredible" 的執行結果:
註:可以抓取講到什麼字是透過抓取Youtube自動產生的英文字幕。
製作專案的過程當中,除了學習的是製作方案的方式、觀念,也會學習到各種相關技術,包括使用IDE、虛擬環境、多線程多進程、Logging,打包專案等等,未來同學都可以應用於開發自己的專案。
單元 1 - 專案介紹 單元 2 - 安裝 PyCharm 單元 3 - 虛擬環境 Virtualenv 單元 4 - git 忽略檔 .gitignore 單元 5 - 建立專案並了解專案架構 單元 6 - 取得頻道中所有影片網址 單元 7 - 如何儲存API Key 單元 8 - 建立程式碼關鍵架構 - part 1 單元 9 - 建立程式碼關鍵架構 - part 2 單元 10 - 下載字幕 part 1 - 持續建立結構 單元 11 - 下載字幕 part 2 - 遇見 API 上限 單元 12 - 讀取字幕 單元 13 - 搜尋字幕與結構優化 - part 1 單元 14 - 搜尋字幕與結構優化 - part 2 單元 15 - 下載影片 單元 16 - 剪接影片與產出合併影片 單元 17 - Multi-threading vs Multi-processing 多線程 vs 多進程 單元 18 - Command Line Arguments 程式參數化 單元 17 - Logging 日誌 單元 18 - Packaging & Distributing 打包成套件與上傳
章節 6 - 爬蟲 ╳ 資料庫
多年前 Python 還沒有這麼熱絡時,許多工程師之所以會接觸到 Python 就是為了寫爬蟲。
結果一路延續下來,爬蟲幾乎可以說是最常與 Python 一起出現的相關詞。
爬蟲的簡易定義: 蒐集/抓取 網路資料的程式。
由於爬蟲會需求一些對網頁的基本了解,所以先介紹一些基本知識,不用擔心沒網頁基礎。
單元 1 - 爬蟲與網頁架構解釋 單元 2 - 了解靜態網站與動態網站 + 安裝工具
其實爬蟲這種東西比較不是在於「怎麼寫」,而是比較吃經驗,也就是面對怎麼樣的網站怎麼處理。因此,為了讓大家在短時間內累積經驗,這邊會有很多的範例,每個範例都有不同學習的點,讓大家盡量見識多一點的情況,有效率地熟悉爬蟲思維SOP。
單元 3 - 使用 Requests 與 BeautifulSoup: Ptt 範例 作業 1 - Dcard 爬蟲 單元 4 - 表格類型: Yahoo股市股價資訊範例 & Yahoo電影排行範例 單元 5 - 八大官股行庫買賣超爬蟲範例 單元 6 - 表單類型: 期貨籌碼盤後資料範例 - part 1 單元 7 - [選讀] 期貨籌碼盤後資料範例 - part 2 作業 2 - 使用多線程快速收集資料 單元 8 - 表單類型: 時間轉換網站範例 & PostMan 單元 9 - 圖表類型: 嗨投資、Stock-ai 範例 單元 10 - 資料類型: 空氣品質監測網 & Regex 單元 11 - 資料類型: Pchome 24h 購物範例
再來會教到資料庫,包括 SQL (使用 MySQL) 與 NoSQL (使用 MongoDB),也讓同學見識將爬下來的資料存入資料庫中,並做搜尋。
單元 12 - SQL 資料庫基礎概念 單元 13 - MySQL 下載與安裝 單元 14 - MySQL 語法教學 單元 15 - 將資料輸入 MySQL 資料庫 單元 16 - MongoDB 下載與安裝 單元 17 - 將資料輸入 MongoDB 資料庫 單元 18 - 從 MongoDB 中搜尋
再下來進到了「延伸教材」的部分,讓大家再更加體驗 Python 的其他應用。
章節 7 - 延伸教材: Selenium 瀏覽器自動化
Selenium,又被稱為爬蟲神器,其實是一個瀏覽器自動化的技術/工具,也就是可以讓瀏覽器彷彿有人在操作般,自動做操作。這項技術時常被當成爬蟲使用,也屬於爬蟲方法當中的底線王牌,也就是簡易爬蟲抓不了的網站通常會選擇使用 Selenium 來處理。
單元 1 - 什麼是 Selenium 單元 2 - 使用 Selenium 單元 3 - 半自動爬蟲 - 悠遊卡紀錄查詢範例 單元 4 - 補充教材: WooTalk 聊天機器人
章節 8 - 延伸教材: 空氣品質監控專案
雖然人類對健康的追求越來越高,但肺癌仍居高不下,甚至進展成被稱為「新國病」,因此近年來人民對空氣品質也越來越重視。
人們一天當中有約 90% 的時間在室內,而室內裡許多汙染物卻是室外的 2~5 倍濃度。室內空汙是時常被忽略卻相當值得被重視的議題。
雖然大多空氣清淨機已有內建 sensor,但無法長期收集數據,也無法主動式地在空氣汙染時發出警告通知。因此,此專案將展示製作一個自己的空氣品質監控器,除了可以知道即時的空氣狀況、蒐集數據,還可以做出主動式的通知。
此專案的五個主要功能:
1. 體驗軟硬體結合的有趣、好玩
2. 體驗/認識 知名微型電腦 (Raspberry Pi、Arduino),與透過連線執行 Python 程式
3. 再次見識資料庫的使用
4. 做出真正可以幫助生活的工具
5. 打開想像力,啟發同學產生專案想法
專案中使用到的設備: (註:了解什麼是VOC)
微型電腦:Raspberry Pi 4 Model B 微型電腦:Arduino UNO R3 VOC-sensor: CCS-811 VOC-sensor: TGS2600 PM2.5-sensor: SDS011 其他零件:杜邦線、麵包板
如果製作一個最簡易、單純 PM2.5 的空氣品質監控專案,則不須任何微型電腦與其他零件,唯一需要的零件為 PM2.5 的 sensor: SDS011。其本身附帶USB接頭,可直接接進桌電/筆電。不過課程中將透過兩台微型電腦連接不同的 VOC-sensor 讓同學認識這些知名設備,有興趣實作的同學可以再自行購買來連接。
另外會示範使用 Python 的 dash 框架來製作一個顯示數據的網站,同時見識如何將各 sensor 的即時數據輸到 MongoDB,再即時顯示在網頁上。最後再部屬資料庫與網頁至雲端,則達到隨時隨地可透過網頁看到即時數據的成果。
▼ 圖為開窗後,室內 VOC (由於釋放出去),開始大幅下降的畫面。

章節 9 - 延伸教材: 認識人工智慧
人工智慧又是一個與 Python 相當關聯的詞。相信完全不了解人工智慧領域的同學,應該會好奇到底這些東西是什麼,到底是如何分析數據,因此在課程的最後,讓有興趣的同學,建立對此領域的基礎了解。
單元 1 - 什麼是AI、機器學習、深度學習 單元 2 - 體驗分析一百萬筆 Amazon 商品評價 單元 3 - 補充教材
章節 10 - 最終章
單元 1 - 結語
一如往常,在最終章寫下課程結語,希望同學在課程中都有豐富的收穫,不但對 Python 的了解大幅提升,學會製作進階的專案與各種相關技術,學會爬蟲各種相關知識與資料庫,甚至到知名微型電腦的應用,與認識人工智慧。最重要的是,希望課程對同學不只是提供寫法、領域知識上的幫助,更希望課程中的範例、專案可以啟發同學產生自己的專案想法,未來做出有趣、實用的程式,加油!
畢業於 UCSD 加州大學電腦科學系(全球排名第 14),並在多個領域累積豐富經驗,涵蓋程式交易專案合作、美國 UC Davis 全職工程師,以及台灣實體程式教學。秉持顛覆傳統教育的理念,致力打造頂尖程式課程,已累積超過 10,000 名付費學員。
▌線上課程:
• Python基礎課程[舊版]
• Python基礎課程[新版]
• Python進階課程
• 金融市場 x 程式交易
合作平台:PressPlay, Hahow, Udemy, YOTTA, 9vs1
課程介紹網站:https://www.learntocode.com.tw/how
課程有專屬的線上討論區,會在上面回答學員問題,同學也可以互相討論、協助。
未解答的問題將於一周內回覆。
比起基礎課程,這個課程有較多的作業給同學練習,且將具有挑戰性,例如讓同學將程式加上某個功能。由於同學已經會寫程式,更需要提升挑戰、自學、自行研究的能力,所以希望作業的設計同學會喜歡。
批改頻率: 作業預計於兩周內提供回饋。 批改方式: 視同學提供的方式批改,於 Hahow 提供作業則於 Hahow 介面回覆,使用線上討論區提供,其他同學也可以加入討論。
什麼是「合作優選」的課程?
「合作優選課程」為 Hahow 向外探尋、精心挑選進來的優質課程 ,讓渴望深度學習的你,在 Hahow 擁有更多選擇!
價格保證
「合作優選課程」讓你放心!只要你可以在其他網站以更低的價格購買到相同課程,我們將協助全額退費,詳細說明請參考相關政策
