Python 程式設計 - 初階

Python 好用套件介紹 - structlog

大家初次使用 Python 的 logging 模組時,應該都跟我同樣困惑過,例如下列程式碼:

import logging

log = logging.getLogger(__name__)
log.info('Hello')

我們會預期上述程式碼要列印 Hello 的字串,然而事實是不會。

這是由於 Python logging 模組預設的 log level 為 WARNING , 所以只有 WARNING , ERROR 以及 CRITICAL 才會顯示。

所以使用 logging 模組通常都要額外做一些設定才行,這不免需要讀一下 Python 官方文件。(這不是 Python 的問題,只是設計哲學不同)

那麼,有沒有什麼套件比起內建的 logging 模組更直覺好用呢?

答案是「有」,那就是本文要介紹的 structlog 套件。

Posted on  Aug 30, 2023  in  Python 模組/套件推薦 , Python 程式設計 - 初階  by  Amo Chen  ‐ 4 min read

Python 好用套件介紹 - better-exceptions

相信大家學寫程式都有相同的一段經驗,那就是看不懂例外錯誤(exceptions)訊息的意思,你可能每個單字都認識,但組合起來就像天書一樣難以理解⋯⋯。

如果有更容易理解的例外錯誤訊息的話,相信會減輕大家在學習與除錯的痛點!

本文要介紹的 better-exceptions 套件,是一個不管新手、老手都適用的套件,它改良了 Python 的例外錯誤訊息,把錯誤當下的變數值一併顯示在例外錯誤訊息當中,就這一個貼心的舉動,大大改善大家在學習與除錯的體驗。

是一個值得推薦與擁有的套件!

Posted on  Aug 25, 2023  in  Python 模組/套件推薦 , Python 程式設計 - 初階  by  Amo Chen  ‐ 3 min read

制霸 Python f-string 各種格式使用方法

開發程式時,字串的輸出經常會需要做一些格式(format),例如數字加上千分位符號、百分比,又或者需要置左、置中、置右對齊等等,這些需求 Python 也都有照顧到,本文將介紹 Python 如何做字串的格式化以及各種範例,讓大家都能夠輕鬆完成字串的格式化!

Last updated on  Apr 9, 2024  in  Python 程式設計 - 初階  by  Amo Chen  ‐ 5 min read

Python 單雙星號(* & **)解說

Python 內將函數的參數分為 keyword argument 以及 positional argument, 這 2 者的差異在官方文件中有清楚說明,同時這 2 種分別支援單星號 * 與雙星號 ** 的用法,是 Python 開發者一定要熟知的用法。

本文將詳細介紹說明。

Posted on  Sep 19, 2022  in  Python 程式設計 - 初階  by  Amo Chen  ‐ 4 min read

Python 模組介紹 - bisect

談到插入(insert)元素到已排序串列(list) ,最暴力的方法就是每次插入元素後直接排序:

>>> a = [1, 2, 3, 4]
>>> a.insert(0, 5)
>>> a
[5, 1, 2, 3, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]

不過隨著串列越來越長,每次插入元素後再進行排序的方式,將會越來越慢,甚至造成大量不必要的運算,這時可以利用 Python 內建模組 bisect ,透過二元搜尋的方式幫我們插入元素到串列之中,如此一來該串列就不需要在新增元素後進行排序。

p.s bisect 只能運用在已排序過的串列(list)

Posted on  Feb 7, 2021  in  Python 程式設計 - 初階  by  Amo Chen  ‐ 3 min read

Python 好用模組 - pathlib

Python 的 os 模組提供不少便利的功能讓我們能夠操作檔案/資料夾的路徑、操作等等。直到 Python 3.4 之後提供一個新模組 pathlib,將各種檔案/資料夾相關的操作封裝在 Path 等類別之中,讓檔案/資料夾的操作更加物件導向。

本文將說明與展示 pathlib 模組。

Posted on  Oct 19, 2020  in  Python 程式設計 - 初階  by  Amo Chen  ‐ 3 min read