Python 程式設計教學---從零開始徹底精通Python,親手實作網站擷取與資料分析,精通Selenium
Python 程式設計教學,從零開始Python物件導向程式語言,並且實作網站擷取與資料分析,中油網站歷史油價擷取與繪圖分析,Yahoo,Youtube,蘋果日報,網站自動登錄,MySQL資料庫實作讀取與儲存
https://www.tibame.com/course/416
https://www.tibame.com/course/413
課程網址[ 限時折扣中]
本土9比1線上與Udemy課程都可以用[請在9比1留言板留下Mail,我們將在48小時內開通Udemy的Python 程式設計教學帳號Email給您]
- 循序漸進,從Python一天學會基礎到從零開始徹底精通Python 程式語言並實作
- 本課程有Python 程式設計教學---從零開始徹底精通Python及親手實作網站擷取與資料分析,精通Selenium瀏覽器自動測試課程
- 前端工程師,徹底了解網頁開發自動化Selenium
- 29.5個小時.....125講座...讓你徹底了解Python程式語言
- 實作台灣中油歷史油價走勢圖,中油網站資料擷取自動化
- 分析台灣油價歷史資料並且回歸預測
- 親手網站擷取與爬蟲大數據資料使用Python
- 徹底解說Python和關聯式資料庫MySQL和SQLite
- 了解機器學習,深度學習內涵,加強人工智慧專業知識.
- 成為大數據分析師,深入挖掘商業智慧,與資料大數據工程
- Python 精通程式語言-親手網站資料擷取
- 這是華人界的知名科學家吳佳諺所推出的線上課程。
- 所有問題一定可以得到解答
- 從觀念入門,親手打造手寫辨識,讓你全盤了解Python資料科學,Python商管應用。
- 初學者到進階使用者,對資料科學有興趣的人,商管財經人士,文法商人員,一般工程師,理工醫,電子電機與資料工程師、資料科學家。
- 讓自己鍍金,提升自我價值。
- 一天學會 Python--從零開始徹底精通Python 程式語言為基礎課程
-
1.下載及安裝Python軟體
1-1.在Mac下載及安裝Python軟體
使用pip install 套件名稱
- 安裝套件
- pip install 套件名稱
- 解除安裝套件
- pip uninstall 套件名稱
- 檢視目前系統已經安裝的套件
- pip list
-
安裝Anaconda,Numpy,Matplotilib
在Mac選取Launchpad打開Anaconda Navigator
在Mac可以選取Spider或jupyter notebook來執行
1-2.在Window 10下載及安裝Python軟體
在Window 10下載及安裝Python軟體
- 在Window 10下載及安裝Python軟體
-
這是安裝程式軟體的路徑,預設是安裝在C:\Programs目錄下
在Window 10打開Python開發環境
這是Python的Shell直譯器
按下win鍵,選取命令提示字元
在命令提示字元下輸入python
進入python直譯器
離開python直譯器輸入exit()
- 在Windows 10安裝Anaconda
-
安裝Anaconda,Numpy,Matplotilib
選取Python 3.6版本
使用conda安裝模組
選取Spider
選取Jupyter Notebook
1-3下載及安裝PyCharm
在Mac下載及安裝PyCharm
安裝完Python後,設定直譯器路徑
Pycharm可以使用Python和Jupyter notebook的檔案
在Pycharm新增函式庫
在Windows 10下安裝Pycharm
下載Community版
2.Python直譯器與計算機
- Mac電腦/usr/local/bin
- Windows電腦C:\python36
- set path=%path%;C:\python36
- 這是設定utf-8-*-編碼
- #-*- coding: utf-8 -*-
- #是註解符號
- 輸入python執行
- $ python
-
變數資料型態
-
- 整數
- 浮點數
- 字串
- 運算式是由運算子與運算元組成
- +加-減*乘/除是運算子,先乘除後加減的結合優先順序
- 運算元是變數,數字,字串和資料結構
- =是分配符號,將右邊的值分配給左邊變數
-
2-1資料型態
Python支援的資料型態:
浮點數(floating point)
字元(char)
整數(integer)
物件(object)
布林常數(Boolean)
空值(null)
字串(string)
2-1-1整數
- 十進位
- >>> 88888
- 88888
- >>> 99999
- 99999
- >>> 1000
- 1000
- >>> 10
- 10
- >>> 15
- 15
-
整數位元運算子
資料型態轉換成整數使用int()函數
整數int的數值大小,可以無窮大無窮小
2-1-2布林資料型態
- 有True和False兩種布林資料型態
-
2-1-3浮點數型態
- Python提供三種浮點數值,float,complex和標準函式庫的decimal.Decimal三種型態
- 3.14159
- 1.0e9=1000000000
- 1.0e-3=0.001
- 將其它資料類型轉成浮點數使用float()
-
Complex複數
- 複數資料型態包含一對float浮點數,表現實數和虛數j.
- >>> z=58-3.14159j
- >>> z.real
- 58.0
- >>> z.imag
- -3.14159
-
Decimal數字
- Decimal數字,它的精確度是由我們來指定.
- Decimal的引數可以是整數,或是字串.但不可以是浮點數,因為浮點數IEEE754的表達方式可能會有誤差.
-
2-1-4字串
- 可以使用雙引號”或單引號’包起來的字串
- >>> "林小寶"
- ‘林小寶'
- >>> '林曉雯'
- ‘林曉雯'
-
多行文字包三重引號在裡面
將其他資料型態轉成字串使用str()函數
- \n為換行
- \tab 為空tab鍵
- \’代表單引號
- \”代表雙引號
- \\代表反斜線
-
用[]符號來擷取字元
2-1-5物件類別
- 類別是抽象的,而物件就是類別的實體。
- 物件也是Python的資料型態。
- 類別class的實體就是物件型態
- >>> a='justin'
- >>> type(a)
- <class 'str'>
- >>> x=5
- >>> type(x)
- <class 'int'>
- >>> y=8.9
- >>> type(y)
- <class ‘float’>
-
2-2識別名稱
每一個變數都有識別名稱。
我們變數宣告時,就是給該變數一個識別名稱。
所有的識別名稱是由字元、數字、下底線(_)所組成。
Python是有大小寫的區隔,a和A是不一樣的變數。
2-3運算式與運算子
邏輯運算子
關係運算子
算術運算子
2-3-1邏輯運算子
- 邏輯運算子and,or,not
-
Python提供了三個邏輯運算子and,or,not.可以使用短路邏輯short-circuit邏輯
運算式出現在布林中,求值結果就是布林值
- 身份運算子is
- 成員運算子in
-
對於群集資料數組,串列和陣列,我們可以使用in運算子來測試隸屬關係
2-3-2關係運算子
比較運算子和邏輯運算子所得到的結果就是一個布林值(True或False)
2-3-3算術運算子
2-4運算子結合優先順序
運算子優先順序,先乘除後加減
2-5數字,字串與變數
變數名稱只能使用小寫字母(a到z),大寫字母(A到Z),數字(0到9),底線(_)
名稱的第一個字元不能用數字,Python會將底線開頭的名稱視為特殊用途(例如__main__)
3.資料結構
- 變數
- 運算式與運算子
- 串列
- 堆疊
- 佇列
-
數組tuple,集合set和字典
- 可以用數組tuple來儲存固定的元素,使用小括號()來建立一數組tuple
- 集合的元素放置沒有按照順序,可以使用{}大括號來建立一集合Set
- 集合加上索引就是字典{索引:值}
-
4.控制結構
- 布林運算式,布林值為True或False
- 在if敘述中,條件後的敘述只執行一次,而在while敘述中,則可執行一次以上。
- While敘述的程序圖形中.選取結構和循序結構,都只執行程式敘述一次,如果我們要讓同一行程式重複執行好幾遍則要用迴圈敘述。
- 迴圈敘述可以重複執行某一段程式好幾遍,直到條件的不成立才跳出這個迴圈。
- 選取結構if
- 語法if:
- if 條件運算式:
- 程式敘述1
- else:
- 程式敘述2
- 迴圈結構while,for
- 語法:
- for 計數變數 in range(起始值,終始值):
- 程式敘述
-
邏輯運算子
- 邏輯運算子可以結合條件,以一個表達式判斷許多條件,而這些條件的結果不是真True就是假False。
- and稱為”與邏輯運算子”,只有當所有條件都成立時才會回傳真True,否則回傳假False。
- or稱為或邏輯運算子,只要運算式中一個條件成立就會回傳真True,只有當所有的條件都為假Fasle時,才會回傳假False。
- not為相反邏輯運算子,真True的條件加上not相反邏輯運算子時,就會變成假False﹔當假False的條件加上not相反邏輯運算子時,就會變成真True。
-
一個選擇的if敘述
- if 條件:
-
敘述
巢狀的if敘述與多重選擇決策
- 在這個例子中有5個等級來做選擇,就叫做多重選擇。
- 語法:
- if (條件1):
- 敘述1
- elif (條件2):
- 敘述2
- elif (條件3):
- 敘述3
- elif (條件4):
- 敘述4
- else (條件5):
- 敘述5
-
迴圈結構for
- Python提供for敘述作為迴圈,除了迴圈主體敘述(statement),還有迴圈的條件結構。
-
迴圈結構while
- 在if敘述中,條件後的敘述只執行一次,而在while敘述中,則可執行一次以上。
-
5.函數
將多個複雜的程式區塊包在函數裡面,這樣在需要時,可以重複呼叫它.
遞迴函數是自己呼叫自己的函數,有最終值,開始回傳.
pass敘述沒做任何事
預設參數值
使用者自訂函數
區域變數的生存空間
- 函數的參數為區域變數.函數的參數生存空間只在函數的範圍內
- 在函數內定義的變數,其作用範圍在函數內
-
遞迴函數
- 我們可以將費氏級數定義成。
- 遞迴函數有兩個條件。一個是最終遞迴的值,然後開始回傳;一個就是遞迴函數的運算式。這兩個條件就可以組成遞迴函數。fib()最終的值是fib(0)=0和fib(1)=1;遞迴函數的運算式是fib(index)=fib(index -1)+fib(index-2);。
-
函數參數與引數
- 費氏係數使用迴圈方式實作
- 函數的名稱和參考位址
- 參數預設值的給值
- 當函數預設值是物件參考時
- 函數呼叫,每次重新分配串列物件
- 關鍵字引數
- 函數參數*name接受實體tuple,函數參數**name接受字典
- *args代表任意數量的引數
- Lambda運算式
- Lambda關鍵字可以建立傳回一個匿名函數
- 使用Lambda運算式當回傳匿名函數
- 文件字串
-
套件模組
- 自訂套件模組
-
我們可以在開設的forecastModule目錄中放__init__的檔案,這樣 Python 就會將這個forecastModule目錄當作一個套件,而這個目錄名稱就是套件名稱,__init__可以是空的檔案
- 模組搜尋路徑
-
Python會到sys標準模組的path變數內的一串目錄名稱串列去搜尋
第一行空白行是一個’’空字串,代表目前檔案的目錄
Python內建字串相關函數
- len()函數取得字串長度
- split()函數來使用分隔符號來將字串分解成短字串的串列
- join()函數將字串串列串成一個字串
- +運算子連接字串
- *用來複製字串
-
6.類別
成員屬性與成員方法
類別和實體變數
- _init__(self,..)為建構函數,實體化物件時會呼叫它
- self為自己這個物件
- __init__(self)建構物件, __del__(self)解構物件
-
Python 精通程式語言 類別
- 類別class與封裝
-
類別是抽象的,而物件就是類別的實體。在這我們將介紹物件類別圖來解釋類別。
物件導向程式設計(object oriented programming簡稱OOP)有幾個特色,分別為類別封裝、繼承inheritance、多型polymorphism。
資料封裝指的是在類別成員(資料欄或方法)宣告存取控制。使用公用public、私有者__,私有者__只有本類別的方法允許使用,公用者public任何類別都允許存取。
衍生類別為本類別的次類別(subclass)或稱為子類別、延伸類別(extended class),本類別稱為子類別的父類別(super class)或稱為父類別(祖先類別)。
- 建構函數__new__()
-
當我們建立物件時,我們常要初始化物件的實體變數。初始化實體變數,是最經常看到的初始化。建構子是當我們使用_new__()來新增類別實體時,Python會自動執行該函數,以便初始化物件__init__()。
x=Complex(3.0,4.0),Python會先呼叫__new__()來建立Complex(3.0,4.0)物件,然後會呼叫__init__()來初始化Complex物件
建立物件第一步是新增變數x。第二步驟是Complex(3.0,4.0),也就是新增Complex(3.0,4.0)類別的物件,在主記憶體上為它配置空間。第三步驟是將剛剛在記憶體上新增物件的位置給x變數,這樣就完成參考(物件位置的分配),也就是將物件的位置給Complex類別型態的x變數。
- 封裝
-
物件需要封裝,來確保資料不會直接被不正當的存取。
物件需要封裝於其它的系統。物件應該只開特定的方法來和程式其它部份交談,以確保程式的穩定性。
這些方法定義了介面,為物件和使用它們程式間的介面。
使用者clinet應該呼叫物件object的方法,而再使用物件的方法來存取物件object內部的資料。
這是確保物件資料的安全性。使用者不直接存取object物件資料,而透過方法介面去存取。
Python並沒有強制資料成員一定要被封裝。
Class Private 是以二個下底線 __ 開頭,而且不超過一個下底線 _ 結尾的的變數名稱,例如 __name 或 __tricks,但是__init__() 就不是 class private,但這種兩個下底線開頭和結尾叫特殊方法
7.繼承
- class 子類別(父類別1,父類別2,父類別3,..):
- 敘述1
- 敘述2
- 當子類別繼承 (inheritance) 超過一個來源的時候,會以寫在最左邊的父類別優先繼承,多個父類別如果有相同名稱的屬性 (attribute) 與方法 (method) ,就會以最左邊的父類別優先。
-
多型:子類別和父類別有同名的getEngine()名稱
Python 精通程式語言 繼承
- 物件導向程式語言
-
物件導向程式設計中,繼承是一個很重要的特色,它是讓軟體模組可以再使用的一個機制。當建立類別時,我們可以使用繼承機制來使用已存在類別的屬性和方法。這已存在的類別,我們稱為父類別或基礎類別,而使用它的類別稱為子類別或延伸類別。
衍生類別為本類別的次類別(subclass)或稱為子類別。延伸類別(extended class),本類別的延伸類別稱為上層類別(super class)或稱為父類別(祖先類別)。
- 父類別和子類別
- 父類別與子類別的關係
-
物件導向的優點之一繼承(程式可重複再使用性)。父親和兒子有相同的基因,有相同的血型和,而且思想行為都很相似,這就是繼承。在程式設計中,父親有的兒子就可以繼承,因此程式碼可以不用再寫,這樣就降低了相同的程式重複出現,而降低軟體程式的大小。因此不要重複的使用相同的程式碼,是物件導向繼承的重點。
物件導向程式設計另外一個重點是封裝。為了降低模組與模組之間,類別與類別之間的存取複雜度,因此要將資料封裝起來,以免造成資料存取的不一致性。資料的存取,只能在該類別中。要存取另外一個類別的資料,最好透過該類別的函數或者管理類別來存取,來保證資料存取的安全與一致性。
- 多型、動態聯繫
-
子類別是父類別的特殊化,每一個子類別的實體都含有父類別的實體。例如每一個外聘員工都是員工,但,不是每個員工都是外聘員工。子類別的物件可以用來當作父類別型態的物件。這個就稱為多型(Polymorphism)。
- 實作繼承,多型
-
Circle類別改寫Point類別__repr__()方法,多型
repr()函數會對給定的物件呼叫__repr__()特殊方法
8.異常或錯誤處理
使用raise關鍵字丟出例外
開啟,關閉及寫入檔案
檔案處理
- fp=open(‘檔案名稱’,’檔案開啟模式’)
-
9.使用matplotlib畫圖
- Matplotlib.pyplot是畫圖的命令集合函數.每一個pyplot函數可以建立或修改圖形
-
10.Python 資料結構與畫圖簡介
- •數組tuple和集合set
- •Scipy科學函數庫
- •numpy模組建立矩陣
- •Pandas資料結構
- •Matplotlib畫圖
-
11.數組tuple和集合set和Scipy科學函數庫
- 可以用數組tuple來儲存固定的元素,使用小括號()來建立一數組tuple
- 集合的元素放置沒有按照順序,可以使用{}大括號來建立一集合Set
- Scipy模組提供科學運算及線性代數的運算模組
-
12.numpy模組建立矩陣
- •numpy模組建立矩陣
- •矩陣運算
- •reshape()改變陣列的長寬
- •np.zeros((10,3))產生10*3的矩陣
-
13.Pandas資料結構
- •使用pip install安裝pandas
- •Pandas讀取csv
- •讀取台灣加權股價指數csv檔,big5編碼
- •Series序列資料
- •pandas的DataFrame
- •資料選擇與篩選
- lambda可調式參數
-
14.Matplotlib畫圖2
- •Matplotlib畫圖
- •plt.plot([1,2,3,4])預設是X軸
- •# ‘r—'紅色虛線,'bs'藍色矩形,'g^'綠色三角形
- •scatter()散點圖函數
- •meshgrid()函數畫網格
-
15.網站擷取使用Python
- Python的標準網路函式庫
- http負責管理所有用戶端的工作
- client負責用戶端的工作
- Server負責編寫Python web伺服器
- Urlib會在http之上執行
- requestx負責處理用戶端請求
- Response負責處理伺服器回應
- Parse負責解析URL
-
廣域網路
封包與連接方法
OSI參考模型
網路名稱
網站擷取使用Python
http 200表示連接網路成功
HTML標籤
<html>標籤範例實作
Web伺服器
Bottle
執行http://localhost:9999/
static_file()指定目前的目錄’.’和檔案同目錄
Flask
Web服務與自動化
BeautifulSoup抓Scrape網頁
抓到a連結網頁的屬性
16.行程和執行緒
- 行程的屬性
- 顯示行程資訊
- 行程平行運算
- Process.start()啟動行程
- os.getpid()得到行程編號
- Queue可以用在行程和執行緒儲存資料
- 行程的生產與消費
- 行程
- 以執行緒Thread來執行
- 執行緒的鎖
- 生產與消費使用執行緒
-
17.資料及檔案處理
- 檔案處理
- 開啟,關閉及寫入檔案
- 讀取檔案
- 讀寫資料
- 開啟寫入文字檔模式wt
- 開啟寫入二進位檔模式wb
- 用with來關閉檔案
- 文字檔案結構JSON
- ensure_ascii=False,indent=2設定dump為中文字
-
18.Python和SQLite資料庫
- 關聯式資料庫與SQLite
- 在Window 10安裝SQLite
- 在Mac安裝SQLite3
- 使用Python連接資料庫
- SQL語言
- SQL標準的資料庫語言,可以存取和更新資料庫的記錄資料。SQLite支援的SQL指令主要分成兩類
-
-
- 資料定義語言(DDL):建立資料表和定義資料表欄位。
- CREATE TABLE 指令可以在資料庫建立資料表
- 資料操作語言(DML):資料表記錄的查詢、插入、刪除和更新。
- 在SQL語言的資料查詢指令SELECT指令:
- SELECT 欄位1, 欄位2 FROM 資料表 WHERE 條件 ORDER BY 欄位清單
- SQL新增記錄INSERT指令可以新增一筆記錄例如:在myreview資料表新增一筆記錄的SQL指令
- insert into myreview(review,sentiment,date) values ('I would like the movie’,1,DATETIME('now'))
- SQL更新記錄UPDATE指令是將資料表內符合條件的記錄,更新其欄位內容
- UPDATE myreview SET sentiment =1 WHERE review='I will like the movie'
- SQL刪除記錄DELETE指令是將資料表內符合條件的記錄刪除掉。
- delete from myreview WHERE review='I will like the movie'
SQLite3資料庫模組
#輸入sqlite3模組 import sqlite3 -
- #建立和myreviews.sqlite資料庫連接
- conn=sqlite3.connect('myreviews.sqlite')
- #使用資料庫指標cursor()
- mycur=conn.cursor()
- #使用資料庫指標mycur執行SQL指令
- mycur.execute()
- #送出指令並交由資料庫執行使用commit()函數
- conn.commit()
- #關閉資料庫使用close()函數
- conn.close()
-
19.MySQL資料庫 Python 機器學習
MySQL資料庫安裝_Windows版
MySQL資料庫安裝_Windows版_實作
MySQL資料庫安裝_MAC版
MySQL資料庫安裝_MAC版_實作
Python連接並操作MySQL資料庫
Python連接並操作MySQL資料庫實作
20.Python網站擷取與資料分析 selenium自動化模組
- 1-1.使用pip來安裝selenium模組
- •1-2安裝瀏覽器
- •1-3控制瀏覽器使用selenium
- •1-4XPath選擇器
- •1-5CSS定位和By
- •1-6ActionChains,滑鼠控制,元素等待WebDriverWait
- •1-7控制瀏覽器,表單切換與多視窗切換
- •1-8上傳與下載檔案
- •1-9操作cookie,呼叫JavaScript與影片播放
-
21.Python網站擷取與資料分析
- •1-1.網站擷取使用Python
- •1-2BeautifulSoup抓Scrape網頁
- •1-3將抓取資料儲存到資料庫
- •1-4寫入SQLite資料庫
-
打開firefox並且選取資料庫
輸入新建資料庫名稱ChineseOil
建立資料表HistoryGasPrice
整合網頁擷取資料
將資料寫入SQLite資料庫
- •1-5寫入MySQL資料庫
- •1-6Python資料分析
-
台灣歷史油價走勢圖
油價長得慢,跌得快
目標受眾是誰?- 想成為大數據分析師
- 深入挖掘商業智慧
- 想學自動化擷取網頁資料
- 網站資料擷取
- 網站資料分析
- 網頁前端工程師
- 網頁設計工程師
- 網站設計工程師
- 網頁自動化工程師
- 想學習大數據的學生
- 想用Python解決問題
- 任何想學習物件導向程式語言的人
- 想學習人工智慧基礎的人
- 想用Python來學習金融計算的人
- 想用Python來學習科學計算的人
- PyCharm安裝及使用
- 想學Python 精通程式語言的人
- 想學Python 物件導向程式語言的學生
- 徹底研究Python程式語言
- Python行程和執行緒
- Python資料及檔案處理
- 檔案處理
- 開啟,關閉及寫入檔案
- 讀取檔案
- 讀寫資料
- 親手網站擷取與爬蟲大數據資料使用Python
- Web伺服器
- Flask
- Web服務與自動化
- BeautifulSoup抓Scrape網頁
- 徹底解說Python和關聯式資料庫SQLite
- 徹底解說關聯式資料庫MySQL
- SQL語言
- Python SQLite3資料庫模組
- 想學Selenium瀏覽器自動化
- 網路擷取資料
- 分析資料
https://www.tibame.com/course/416
https://www.tibame.com/course/413
課程網址[ 限時折扣中]
本土9比1線上與Udemy課程都可以用[請在9比1留言板留下Mail,我們將在48小時內開通Udemy的Python 程式設計教學帳號Email給您]
留言列表