Python Koans

Python Koans

Home
Notes
Archive
About
Koan 20: The Unreliable Messenger
Exploring traps in try/finally blocks, and the reasoning behind PEP601 and PEP765
May 11 • Vivis Dev

January 2026

Koan 19: The Unhelpful Eclipse
On the fragility of unintended behavior and the wisdom of explicit paths
Jan 30 • Vivis Dev
Koan 18: The Loose Bundle
Exploring the pitfalls of raw string literals in Python
Jan 14 • Vivis Dev
Koan 17: The Watchman at the Gate
A look into Python's regex module
Jan 7 • Vivis Dev

December 2025

Koan 9: The Unfired Pot REDUX
Experience is simply the name we give our mistakes - Oscar Wilde
Dec 16, 2025 • Vivis Dev

November 2025

Koan 16: The Master's Lesson
Why we need "if __name__ == '__main__'"
Nov 5, 2025 • Vivis Dev

October 2025

Koan 15: The Invisible Ink
Understanding Unicode equivalence and the deceptive nature of glyphs
Oct 23, 2025 • Vivis Dev
Koan 14: The Missing Grain
When python packaged data goes wrong
Oct 4, 2025 • Vivis Dev

September 2025

Koan 13: The Empty Bowl
Understanding Python dataclasses and how fields determine equality and hashing.
Sep 24, 2025 • Vivis Dev
Koan 12: The Blacksmith's Hammer
Exploring the dangerous power of unquoted Python strings, and how they caused CVE-2024-9287
Sep 15, 2025 • Vivis Dev
Koan 11: The Flowing River (Part 2)
Understanding how Python's list comprehensions work under the hood
Sep 9, 2025 • Vivis Dev
Koan 10: The Flowing River (Part 1)
Understanding how Python's list comprehensions work under the hood
Sep 2, 2025 • Vivis Dev
© 2026 Python Koans · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture