發表文章

目前顯示的是有「Python」標籤的文章

VSCode安裝與使用

圖片
VSCode安裝與使用 大綱 下載安裝 VSCode 在 Windows 上 建立專案目錄、開啟VSCode 安裝 Python 相關擴充插件 選擇 Color Theme主題外觀 客製化設定 好用的 Extension 擴充插件 General 通用 Coding AI Assistant Html/CSS JavaScript Python Flutter/Dart Excel BackEnd/Database Shotcut 快捷鍵 General通用 檔案、目錄 編輯 Navigation Display Emmet/Html Doc FAQ-VSCode 前言 Visual Studio Code 簡稱 VS Code,VS Code 是一個由微軟開發 IDE,支援各平台的免費程式碼編輯器,它支援測試程式、Git 版本控制、代碼補全、豐富的插件 ...... 等等常用功能,幾乎可以開發任何程式語言,實用工具非常多,全球使用者佔據絕對優勢,並且奪得了 2021 年 StackOverflow 上的使用者統計第一名。 下載安裝 VSCode 在 Windows 上 安裝非常簡單,網路上也有非常多的介紹文章,這裡就不做詳細介紹了。 1:雙擊 下載  選擇合適的版本後,執行安裝,以安裝 Windows 版本為例。 2:勾選同意,然後點擊下一步。 3:選擇安裝位置,我這裡選擇的是D盤  4:下一步  5:勾選創建快捷方式,下一步  6:點擊安裝,開始安裝  7: 等待安裝結束。 另外,VSCode 也有網也版本,詳細說明請參閱► 2021/10/22微軟發表網頁版VS Code(外連結) 。 建立專案目錄、開啟VSCode 我們在 C:\Users\Administrator\Desktop\Code\Python\ 路徑下建立一個 Folder 目錄  startUp。點擊滑鼠右鍵,用 VSCode 開啟: 安裝 Python 相關擴充插件 開啟後,我們先安裝必須且常用的 Extension 擴充插件。 點選 Extension 擴充插件圖示,安裝必須且常用的擴充插件。 左下角顯示預設的 Python 版本,表示安裝成功。 右邊大區塊的...

如何安裝配置Python開發環境

圖片
如何安裝配置Python開發環境 前言 程式設計最讓人頭痛想放棄的癥結點,很多時候是搞定開發環境跟工具,也就是一開始被架構好,後面的工具、套件安裝時就會出現許多問題。另外,每個人使用的硬體跟軟體規格版本不一,常常會出現相容性議題。 大綱 在 Windows 安裝 Python 執行環境 Python IDE 整合開發工具 在VS Code上設置 Python 編程環境 在Windows 安裝 Python 執行環境 連到Python官網的Windows下載頁面 Python 官網的 Windows下載頁面 勾選「Add Python 3.X to PATH」 進行安裝的第一個畫面中,先勾選「Add Python 3.X to PATH」然後再按「Install Now」繼續安裝程序。 按一下「Close」就完成了 當看到這個畫面,按一下「Close」就完成Python執行環境的建置了。 確認安裝完成 在終端命令行輸入 "> py -V ",確認安裝的 Python 版本。 Python IDLE Python有兩種介面。Python IDLE,是一個整合型的編輯器。 Python Terminal 另一種是 Command Line, 終端機模式。 模組安裝 安裝模組的指令為「 pip install <模組名稱> 」,例如想安裝「requests」模組的話就輸入「 pip install requests 」後按鍵盤上的「Enter」即可。 模組的導入 模組安裝之後就可以引用,而引用的指令為「 import 」。例如若要在開發程式時引用requests模組,就在開頭加上「 import requests 」就行了。 Python 開發整合工具 雖然以上下載 Python 原生環境就可以執行 Python,但是選擇自己合適的 IDE (整合開發環境),是開發專案不可或缺的選項。 以下是推薦常用的  IDE : VS Code : VS Code為微軟開源的編譯器,豐富的插件已經澎湃到幾乎可以開發任何程式語言,實用工具非常多。 Colab : Colaboratory (簡稱為「Colab」) google的雲端 Python 筆記本,每個筆記本都是一個 Linux 虛擬機,還可以結合雲端硬碟IO,更可以...

Python 中 yield 的用法詳解

Python 中 yield 的用法詳解 前言 yield 最主要的目的與功能是 : 為了節省記憶體的使用。 讓我們來看看下面一個狀況: my_list = [x*x for x in range(1000000000000000000)] for i in my_list : ... print(i) 可以看到,通常我們在進行遞迴時都會傾向於先把要遞迴的 list 存起來,之後再以 for 迴圈把內容逐步輸出。 但我們可以看到 my_list 裡有非常驚人的數列,因此如果要全部存進記憶體,運行效率就會變的非常的慢。 這時可能有人會說,那為什麼不直接用 range 就好呢?其實 range 在 Python 2 是分成 range 跟 xrange 兩個, range 的生成方式就像上面的 my_list;xrange 才是以 class 的型態運行。 其中要注意的是python3時已經沒有xrange()了,在python3中,range()就是xrange()了,你可以在python3中查看range()的類型,它已經是個<class 'range'>了,而不是一個list了。 這個問題,最常被注意到的便是爬蟲。有時候短短的幾千條網站,還能靠記憶體來爬;但如果有數十萬個網站,每一個網站都以 list 的方式儲存,記憶體不夠大,程式就會直接崩潰了。 因此 yield 設計來的目的,就是為了單次輸出內容。我們可以把 yield 暫時看成 return ,但是這個 return 的功能只有單次。而且,一旦我們的程式執行到 yield 後,程式就會把值丟出,並暫時停止。 直到下一次的遞迴,程式才會從 yield 的下一行開始執行。那哪裡有遞迴呢?沒錯,最常被用到 for 迴圈裡,而且 for 迴圈自帶 next() 的功能。換句話說,for 迴圈會自動在程式內部進行下一輪的遞迴,因而觸動 yield 進行下一輪吐值。而所有能被迭代的物件,都能夠被 yield 製作成生成器。 好了,如果你對這些不明白的話, 那先把 yield 看做 return ,之後再把它看做一個是生成器 generator 的一部分,然後直接看下面的範例 ...

如何學習 Python 呢?

如何學習 Python 呢? 學習教程 Python 教學(外連結)  : 這份教學介紹 Python 中最值得一提的那些功能,幫助您了解 Python 語言的特色與風格。讀完教學後,您將有能力閱讀和撰寫 Python 模組與程式,也做好進一步學習 Python 標準函式庫 (Standard Library) 中各類型的 Python 函式庫模組的準備。 Python 標準函式庫 (Standard Library)(外連結) : 你該好好的瀏覽這份手冊,它提供了完整(但簡潔)的參考素材,像是型別、函式與模組,可以了解 Python 標準物件和模組的描述。 安裝 Python 模組(外連結) :說明與解釋如何安裝其他 Python 使用者所編寫的模組。 Python 語言參考手冊(外連結) : Python 語法以及語意的詳細說明。這份文件閱讀起來會有些吃力,但作為一個語言本身的完整指南是非常有用的。 擴充和嵌入Python 直譯器(外連結) 和 Python/C API 參考手冊(外連結) : 可以學到用 C 或 C++ 寫擴充套件 (extensions)。 更多 Python 的資源: Python 官網 (外連結)  : 它包含代碼 文檔以及指向全網 Python 相關頁面的鏈接。該網站在世界各地建有鏡像,如歐洲、日本和澳大利亞等;鏡像網站可能會比主網站更快,具體取決於您的地理位置。該網站還包含許多免費的第三方 Python 模塊、程序和工具的發布包及其附加文檔的鏈接。 https://docs.python.org :快速訪問 Python 的文件。 https://pypi.org :Python 套件索引 (Python Package Index),之前也被暱稱為 Cheese Shop ,彙總了使用者開發 Python 模組的索引,並提供模組能夠被下載。一旦開始發佈相關程式碼,你可以將開發的作品註冊到這裡並且讓其他人找到。 https://code.activestate.com/recipes/langs/python/ :Python Cookbook 是一個相當大的程式碼集,包含程式碼範例、較大的模組以及有用的腳本。特別值得注意的貢獻則被收集在一本名為 Python Cookbook (O’Re...

Scrapy爬蟲框架

圖片
Scrapy爬蟲框架 前言 我們前面已經說明各類模組可以執行網路爬蟲設計,針對一般的網頁抓取已經足夠,這裡我們將介紹的 Scrapy ,其實是一個爬蟲框架,是一個快速的高階網頁抓取和網頁淬取框架,用於抓取網站並從其頁面中提取結構化數據。它可用於廣泛的用途,從數據挖掘到監控和自動化測試。適合大型爬蟲設計,我們將簡單以範例說明此框架 。 大綱 安裝 Scrapy 從簡單的實例開始 - 建立 Scrapy 專案 Scrapy 專案框架 Scrapy 專案框架的檔案說明 爬蟲程式設計 Scrapy 定位元素 使用cookie 登入 保存文件為 JSON 和 CSV 檔案 Scrapy 架構圖 數據流 DataFlow Scrapy Components 控件 專題爬取多頁 PTT 資料 安裝 Scrapy 早期在安裝 Scrapy 需要先安裝 Twisted,Twisted 是異步網路請求框架,現在這個 Twisted 安裝已經被整合在 Scrapy 安裝內,讀者可以使用下列方式安裝 Scrapy。 pip install Scrapy 安裝成功後可以看到下列畫面 從上述可以看到 Twisted 也安裝了,若是不知道是否安裝成功,可以使用輸入下列指令了解相關 Scrapy 的模組版本 。 scrapy version 從簡單的範例開始 - 建立 Scrapy 專案 Scrapy 專案框架 這裡我們先用一個簡單的網頁測試 Scrapy 的功能,對於 Scrapy 而言,想要執行設計爬蟲程式必須建立 Scrapy 專案,專案建立方式是使用下列指令: scrapy startproject 專案名稱 此例我們在 Windows PowerShell 環境進入~/scrapyProject 資料夾,然後使用下列指令建立專案: scrapy startproject yahoo 可以看到下列結果 這時 Scrapy 模組就自動在我們的 ~/scrapyProject/yahoo 資料夾下方建立了一系列專案檔案。 上述就是我們建立 Scrapy 專案 yahoo時,模組 Scrapy 自動產生的框架完整結構與內容,有關各個 Python 檔案內容意義,將在下面說明。 Scrapy 專案框架的檔案說明 在 ~/scrapyProject/ ...

Requests-HTML 模組

圖片
Requests-HTML 模組 前言 Requests-HTML 模組  是原 Requests 開發者另一個巨大貢獻,他包含所有 Request 模組功能,更重要的是新增加了數據清洗與爬取使用 ajax 動態數據加載網頁的功能,它的觀念是 ajax 動態網頁數據會被加載到 Chromium 瀏覽器網頁,然後爬蟲程式自行在 Chromium 瀏覽器爬取,更多相關資訊可以參考。 大綱 安裝與導入 使用者請求Session 認識回傳資料型態與幾個重要屬性 數據清洗與爬取 使用 find() 方法 使用 xpath() 方法 搜尋 search() 搜尋豆瓣電影網站 Ajax 動態數據加載 安裝與導入 安裝方式如下 pip install requests-html 請留意程式導入此模組方法如下 import requests_html 可以使用模組屬性 DEFAULT_URL 了解是否安裝此模組成功  使用者請求 Session Requests 的 Session 模式可以讓請求對話持續保持,只要使用者與伺服器雙方沒有關閉此連線,就持續存在。 Requests-HTML 的請求是承襲 Requests ,不過 Requests-HTML 的請求只能使用 Session方式。 使用 Requests 模組時,常用的 get()、post() 方法,也可以應用在 Requests-HTML 模組,同時在 Requests 模組內,使用 get() 、post() 的參數,也可以使用在 Requests-HTML 模組的 get()、post() 。所以先前章節介紹的 headers、proxies、cookies... 等等的參數,也可以運用在此 get()、post() 。此外,偽裝瀏覽器的表頭 headers ,如果沒有設定, Requests-HTML 模組會使用預設的表頭 headers 。在安裝此模組時,可以看到下列路徑 ~\Python39\Lib\site-packages 的 requests_html.py 檔案。 開啟上述檔案可以看到下列預設的表頭 headers 預設內容: DEFAULT_ENCODING = 'utf-8' DEFAULT_URL = ...

股市數據爬取與分析

圖片
股市數據爬取與分析 大綱 證券櫃檯買賣中心 獲得特定上櫃股票的 CSV 檔案 一個月的收盤價分析 台灣證券交易所 獲得特定上市股票的盤後資訊 台泥年度收盤價分析 獲得每天股票每5秒的成交資訊 Google 全球股市資訊 Yahoo 股市資訊 台灣股市資料讀取與圖表製作 Stock建構元 Stock物件屬性 Stock 物件方法 取得單一股票之即時資料 realtime.get() 證券櫃檯買賣中心 證券櫃檯買賣中心是台灣上櫃股票的買賣中心,本文我們將講解獲取特定股票的是 CSV 檔案方式,然後做基礎股票分析 。 獲得特定上櫃股票的 CSV 檔案 請進入 證券櫃檯買賣中心網頁 。 點選上櫃 =>盤後資訊 => 個股日成交資訊,可以看到下列畫面 : 讀者可以參考上述圈選欄位,自行輸入股票代碼和資料年月,就可以看到特定股票在特定年月份的成交盤後資訊。下列是筆者填選 110/09 月份,股票代碼 6488 環球晶的盤後資訊 上述可以看到另存 CSV 按鈕,點選就可以下載,下列是我們以 Microsoft Excel 開啟此檔案的畫面 。 同時我們也使用相同名稱 ST43_6488_202109.csv 儲存此 CSV 檔案。 一個月的收盤價分析 我們有了上述 CSV 檔案,就可以使用我們了解的繪圖知識,製作股價走勢圖,當然在製作前我們必須了解此 CSV 檔案,才可以讀取我們想要的內容。首先這個檔案的前 5 行是股票基本訊息,我們可以忽略,此外最後一行是計算本月成交的日期數,也稱成交筆數,我們也須忽略,可以參考以下範例。 範例 pythonStock-01.py :  設計上櫃股票,股票代號是 6488 的 2021 年 9 月,每天最高價、最低價、收盤價的股票走勢圖。這個程式設計中,我們先將所讀取的 csv 檔案轉成串列 list,然後使用串列切片觀念,刪除前5行和最後一行。 # pythonStock-01.py import csv import matplotlib.pyplot as plt from datetime import datetime fn = 'ST43_6488_202109.csv' with open(fn) as csvFile: csvReader = csv.rea...