Last Updated on 2021-10-22 by Clay
教學
Python 是相當簡單優雅的程式語言,也有著豐富多元的函式庫可以完成各式各樣的功能。
在這裡我記錄了基本的 Python 語法、以及由 Google 推薦的開源專案程式碼風格。
- [Python] 基本入門語法概覽
- [Python] 值得參考的 Coding Style 整理筆記
- 下載安裝,然後 Hello World !
- 加減乘除、字串、變數
- for 迴圈、if 條件判斷式
- break, pass, continue
- Python 的基本邏輯 True, False, bool
- Python 的基本邏輯『大於小於等於』
- function 函式
- function, 預設值, *args, **kwargs
- lambda 的使用
- List —— Python 中的 Array (補充:[Python] List 列表的常見操作方法)
- Tuples, Sets, Dictionary
- Import package: time, datetime, math
- 錯誤處理:try & except
- os, 讀寫檔案
- Class
函式(Function)
- [Python] 使用 map() 函式來迭代輸入參數給函式
- [Python] 使用 enumerate() 函式來同時輸出索引與元素
- [Python] zip() 函式的使用方法
- [Python] setattr() 函式與 getattr() 函式的使用方法
- [Python] filter() 函式的使用方法
- [Python] split() 和 splitlines() 函式的使用方法
- [Python] isinstance() 的使用方法
- [Python] 使用 exec() 函式批量變數賦值
- [Python] 使用 next() 函式讀取可迭代物件的元素
模組(Module)
- [Python] 使用 os 模組遍歷所有檔案,並計算檔案大小
- [Python] 使用 SMTP 模組透過 Gmail 寄信
- [Python] 使用 socket 模組基本教學
- [Python] 使用 glob 模組透過 UNIX 規則匹配檔案
- [Python] 使用 csv 套件讀取 csv 檔案
- [Python] 如何使用 datetime 模組來處理日期
- [Python] 使用 sqlite3 模組建立嵌入式資料庫
- [Python] 使用 pprint 印出標準化的輸出
- [Python] 如何透過 Dict 或 Counter 模組統計數量
- [Python] 使用 Pickle 模組保存資料(持久化數據)
- [Python] 進程池 Pool 的使用方法及進度條顯示
- [Python] argparse 如何傳遞列表 (List) 當作程式參數
- [Python] 使用 zipfile 壓縮、解壓資料夾
- [Python] 使用 tarfile 壓縮、解壓縮檔案
- [Python] 產生隨機亂數的 random 模組
- [Python] 使用 copy 模組複製物件
- [Python] 雙端佇列: deque
- [Python] 使用 markdown 模組將 markdown 轉成 HTML
套件(Package)
- [Python] 使用 PyInstaller 套件將程式打包成 exe 執行檔
- [Python] 使用 Pillow 套件來進行圖片剪切
- [Python] 使用 Pillow 套件將字型檔轉成 PNG 圖片
- [Python] 使用 PIL 套件將圖片背景轉成透明圖層
- [Python] 使用 PIL 套件將兩張圖片合併
- [Python] 使用 xlrd 套件讀取 XLS 檔
- [Python] 使用 GoogleNews 套件輕鬆取得 Google News 新聞資訊
- [Python] 使用 google_images_download 套件批量下載 Google 圖片中的圖片
- [Python] 使用 pytube 套件下載 Youtube 影片
- [Python] 使用 tqdm 套件展示進度條、並嘗試自己寫進度條
- [Python] 使用 gkeepapi 套件存取 Google Keep
- [Python] 使用 wordcloud 套件快速產生文字雲
- [Python] 使用 Fire 套件直接使用終端機使用函式
- [Python] 透過 svglib 將 SVG 轉成 PNG
- [Python] 透過 python-wordpress-xmlrpc 套件在 WordPress 上自動發文
- [Python] 透過 python-wordpress-xmlrpc 套件將 WordPress 上發表的文章下載下來
- [Python] 使用 ujson 套件提昇 Json 檔處理速度
- [Python] 使用 Pygments 套件將程式語言 keyword 加上顏色
- [Python] 使用 pytrends 套件獲取 Google 搜尋趨勢的結果
- [Python] 使用 gdown 套件來下載 Google 雲端硬碟的檔案
- [Python] 使用 Selenium 進行 Google 搜尋引擎的爬蟲
- [Python] 使用 googletrans 套件來進行 Google 翻譯
- [Python] 使用 matplotlib-venn 繪製文氏圖
- [Python] 使用 PyYAML 讀取 YAML 格式的檔案
自然語言處理
- [NLP] Word Embedding 筆記
- [Python] 使用 Gensim 套件將文字轉成向量(Word2Vec)
- [Python] 將 Glove 模型轉換成 Gensim 可以讀取的格式
- [NLP][Python] 表示文件向量: Doc2Vec
- [NLP][Python] 使用 FastText 訓練詞向量
- [NLP][Python] 英文自然語言處理的經典工具 NLTK
- [NLP][Python] 中文斷詞最方便的開源工具之一: Jieba
- [NLP][Python] 透過 ckiptagger 來使用繁體中文斷詞的最佳工具 CKIP
- [NLP][Python] 有許多功能的自然語言處理工具: HanLP
- [NLP][Python] 中文自然語言分析的工具: THULAC
- Cosine Similarity (餘弦相似度) 的計算方法及程式碼
- [Python] 使用 "chardet" 套件判斷文件的編碼
- [Python] wordcloud 模組使用 mask 生成特定形狀、顏色
- [Python] wordcloud 設定文字雲中文字顏色
- [Python] wordcloud 自定義背景圖片
- [NLP][Python] 試用 FB 團隊最新開源的聊天機器人 Blender
- 使用 Python 計算兩句子的最短編輯距離 (Minimum Edit Distance)
- [NLP] BLEU 計算相似度
- [NLP] 文字探勘中的 TF-IDF 技術
機器學習(Machine Learning)
環境
Keras & Tensorflow
- [Keras] 使用 CNN 進行 MNIST 的手寫數字辨識
- [Keras] 使用 CNN 建立 Cifar-10 的分類器 (實戰篇)
- [Keras] 如何架構多標籤分類 (Multi-label Classification) 模型
PyTorch
- [PyTorch] Getting Start: 自動求導
- [PyTorch] Getting Start: Neural Networks 神經網路的基本介紹
- [PyTorch] Getting Start: 訓練分類器 —— MNIST
- [PyTorch] Getting Start: 訓練 CIFAR-10 資料集的分類模型
- [PyTorch] Audio: PyTorch 中的音訊處理模組 torchaudio
- [PyTorch] 搭建 GAN 模型產生虛假的 MNIST 圖片
- [PyTorch] Image: 利用生成對抗網路 DCGAN 生成圖片
- [PyTorch] 旅館評論情感分析實戰紀錄 (0)
- [PyTorch] 旅館評論情感分析實戰紀錄 (1)
- [PyTorch] 如何儲存模型、讀取模型
- [PyTorch] 將 Tensor 型態轉換成 One-Hot Encoding 型態
- [PyTorch] 將 Sigmoid 的輸出設定閥值(threshold)並轉成二元值
- [PyTorch] 使用 torchsummary 將模型視覺化
- [PyTorch] 判斷當前資料所使用的 GPU
- [PyTorch] 透過給予 Loss 權重,試圖解決資料不平衡的情況
- [PyTorch] 提取模型權重或模型層的方法筆記
- [PyTorch] nn.Embedding() 讀取 Gensim 預訓練模型權重方法筆記
- [PyTorch] 使用 torch.cat() 在 torch tensor 中實現如 List 資料結構中的 append() 操作
- [PyTorch] 使用 ModuleList 減少重複定義模型的程式碼數量
- [PyTorch] 確認模型的狀態屬於 train() 或是 eval()
- [PyTorch] 如何使用 pad_packed_sequence 和 pack_padded_sequence 調整可變長度序列批次
- [PyTorch] 使用 view() 和 permute() 轉換維度
- [PyTorch] 使用 random_split() 函式切割資料集
- [PyTorch] 應用 Early stopping 技術讓模型在較好的收斂時間點停止訓練
- [PyTorch] 使用 Keras 風格進度條的套件: pkbar
Machine Learning
- [Machine Learning] Sigmoid 函數介紹與程式實作
- [Machine Learning] ReLU 函式介紹與程式實作
- [Machine Learning] softmax 函式介紹與程式實作
- [Machine Learning] Tanh 函式介紹與程式實作
- [Machine Learning] NLLLoss 函式介紹與程式實作
- [Machine Learning] BinaryCrossEntropy 介紹與程式實作
- [Machine Learning] SMAPE 指標介紹與程式實作
- [Machine Learning] MAE 指標介紹與程式實作
- [Machine Learning] Precision、Recall、F1 三種評估模型的指標
- [Machine Learning] AutoEncoder 基本介紹 (附 PyTorch 程式碼)
- [PyTorch] LSTM 的原理與輸入輸出格式紀錄
其他
圖形化介面(GUI)
PyQt5
- 教學
- [Linux ]在 Ubuntu 18.04 配置 Qt Designer 來開發 Python 的 GUI 介面
- [PyQt5] 基本教學(1) 安裝 PyQt5,印出 Hello World!
- [PyQt5] 基本教學(2) QLabel, QLineEdit, QPushButtom
- [PyQt5] 基本教學(3) QMainWindow, QIcon, QPixmap, QPalette
- [PyQt5] 基本教學(4) 菜單、工具欄
- [PyQt5] 基本教學(5) 進度條、滑動條、旋轉鈕
- [PyQt5] 基本教學(6) 下拉選單、BoxLayout
- [PyQt5] 基本教學(7) hide, show, 自動適應窗口大小
- [PyQt5] 基本教學(8) QTimer, QlcdNumber
- [PyQt5] 基本教學(9) QCalendar,使用 Python 輕鬆創造日曆元件
- [PyQt5] 基本教學(10) 使用鍵盤輸入指令、判斷滑鼠點擊位置
- [PyQt5] 基本教學(11) 使用 QColorDialog 調色盤來進行顏色的設定
- 應用
- [PyQt5] 隱藏了窗口標題後使用滑鼠拖曳界面
- [PyQt5] 如何使用 QStyle 自帶的 Icon 來當作圖示
- [PyQt5] 透過程式製作簡易繪圖板
- [PyQt5] 把 QLabel 元件中的文字、圖像儲存成圖片的方法筆記
- [PyQt5] 拖曳圖片到 Label 元件上並顯示圖片
- [PyQt5] 如何使用 QScrollArea 元件製作捲動頁面
- [PyQt5] 點擊圖片並取得該位置的像素值
- [PyQt5] 將元件漸層渲染不同顏色、漸層顏色
- [PyQt5] 使用 QMediaPlayer 模組在界面上播放影片
- [PyQt5] 使用 QSettings 儲存參數
- [PyQt5] 讓窗口位於螢幕最前方或最後方
- [PyQt5] 使用右鍵打開菜單選項
- [PyQt5] 在主視窗中開啟另外一個視窗
- [PyQt5] 使開發的界面不要顯示圖示在桌面側邊欄的方法
- [PyQt5] 實現圓角邊框視窗的界面
- [PyQt5][Mac OS] 如何顯示圖示(Icon)在下方欄位(Dock)
- [PyQt5] 在 Mac OS 中安裝 Qt Designer 方法筆記
PySide
網頁
- [Flask] 學習心得筆記 (0): 建立一個基本的靜態網頁
- [Flask] 學習心得筆記 (1): Route 的基本介紹
- [Flask] 學習心得筆記 (2): 使用 render_template 套用 HTML 模板
- [Flask] 學習心得筆記 (3): request 當中 Get、Post 的指令
小遊戲
開發環境
- PyCharm
- 其他
其他
- [Python] 在終端機中輸出有顏色的文字
- [Python] 爬蟲時使用『斷點續傳』從中斷點繼續下載檔案
- [Python] 透過程式將圖片複製到剪貼簿中
- [Python] PyInstaller 製作可夾帶圖片的可執行檔
- [Python] 使用 open() 開啟大檔案時避免記憶體錯誤的方法
- [Python] Matplotlib 繪圖時去白邊的問題
- [Python] 使用 OpenCV 轉換 JP2 格式的圖片成 PNG、JPEG
- [Python] 小知識:== 和 is 的差異
- [Python] 字串(string)大小寫轉換的各種方法
- [Python] 字串格式化補零、取小數的方法
- [Python] 二進制、八進制、十進制、十六進制等不同進制轉換方法
- [Python] 取數值小數點的方法(指定位數、四捨五入)
- [Python] 3.10 先覽版本開始支援 switch 功能(透過 match 語法)
- [Python] 在程式碼中執行 AppleScript 語法
- [Python] 如何將 Numpy 資料格式轉成 Tuple 或 List
- [Python] 判斷一個變數是否為函式
- [Python] 套件(package)和模組(module)之間的差別
- [Python] 使用 subprocess 來存取系統剪貼簿 (clipboard)
- [WordPress] 在自訂 HTML 區塊將程式碼高亮 (Highlight) 的轉換程式
- [WordPress] 取得所有發表過的文章
- [WordPress] 使用 REST API 發表文章
疑難雜症
- [已解決][Stanford Parser] '遠端主機已強制關閉一個現存的連線。', None, 10054, None))
- [已解決] Python SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-5: truncated \UXXXXXXXX escape
- [Python] [CRITICAL] [App ] Unable to get a Text provider, abort—— kivy 報錯解決
- [已解決] PyInstaller unable to find Qt5Core.dll
- [已解決] 使用 PyQt5 播放影片時遇到: DirectShowPlayerService::doRender: Unresolved error code 0x8040266 (IDisspatch error #102)
- [已解決][Python] ModuleNotFoundError: No module named 'cStringIO'
- [已解決][Python] ValueError: unsupported image mode 'LA'
- [已解決][Python] AttributeError: module 'win32ctypes.pywin32.win32api' has no attribute 'error'
- [已解決] PyCharm 當中發生 "Please specify a different SDK name" 的問題
- [已解決] 'Object arrays cannot be loaded when allow_pickle=False'
- [已解決][PyCharm] 新增虛擬環境直譯器時發生: ModuleNotFoundError: No module named 'distutils.core'
- [已解決] PyCharm 報錯:Cannot start process, the working directory 'xxx' does not exist
- [已解決] RuntimeError: CUDA error: device-side assert triggered
- [已解決] graphviz.backend.ExecutableNotFound: failed to execute ['dot', '-Tpdf', '-O', 'Digraph.gv'], make sure the Graphviz executables are on your systems' PATH
- [已解決] (2020/04/23 更新) Python GoogleNews 中文無法返回搜尋結果的可能解決方法
- [已解決] RuntimeError: Input and parameter tensors are not at the same device, found input tensor at cpu and parameter tensor at cuda:0
- [已解決][PyTorch] LSTM RuntimeError: input must have 3 dimensions, got 2
- [已解決] OSError: [E050] Can't find model 'en'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.
- [已解決][PyTorch] AttributeError: 'tuple' object has no attribute 'size'
- [已解決][PyTorch] ValueError: expected sequence of length 300 at dim 1 (got 3)
- [已解決][PyTorch] RuntimeError: bool value of Tensor with more than one value is ambiguous
- [已解決][PyTorch] TypeError: not a sequence
- [已解決][PyTorch] IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)
- [已解決] TypeError: 'str' object is not callable
- [已解決] OSError: stanford-chinese-corenlp-yyyy-MM-dd-models.jar not exists. You should download and place it in the models/stanford-corenlp-4.0.0/ first.
- [已解決][PyTorch] return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse) RuntimeError: index out of range: Tried to access index 5 out of table with 4 rows. at /pytorch/aten/src/TH/generic/THTensorEvenMoreMath.cpp:237
- [已解決][PyTorch] RuntimeError: CUDA out of memory. Tried to allocate 2.0 GiB
- [已解決] SyntaxError: non-default argument follows default argument
- [已解決][PyTorch] RuntimeError: Attempting to deserialize object on CUDA device 3 but torch.cuda.device_count() is 1.
- [已解決][PyTorch] TypeError: expected Tensor as element 0 in argument 0, but got list
- [已解決] FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)])
- [已解決][Python] RecursionError: maximum recursion depth exceeded
- [已解決] NLTK ImportError: cannot import name 'stopwords'
- [已解決][Python] requests.exceptions.TooManyRedirects: Exceeded 30 redirects
- [已解決] Exception ignored in: bound method BaseSession.__del__ of tensorflow.python.client.session.Session object at 0x7ff1243e0358
- [已解決] Jupyter Notebook - 500 : Internal Server Error
- [已解決] urllib.error.URLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
- [已解決][Python] ModuleNotFoundError: No module named 'distutils.util'
- [已解決][Python] FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-build-8lcjii2e/PyQt5/setup.py'
- [已解決][Linux] 安裝 Python 出現錯誤訊息: zipimport.ZipImportError: can't decompress data
- [已解決][Python] 使用 Numpy 判斷時報錯:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
- [已解決] ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED L
- [已解決][PySide] TypeError: 'PySide6.QtGui.QFont.setWeight' called with wrong argument types: PySide6.QtGui.QFont.setWeight(int)
- [已解決][Python] IndexError: list index out of range
- [已解決][Python] FileNotFoundError: [Errno 2] No such file or directory: 'xxx.txt'