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
Most Popular
View all
Koan 15: The Invisible Ink
Oct 23, 2025 • Vivis Dev
Koan 1: The Empty Path
Jul 1, 2025 • Vivis Dev
Koan 2: The Tale of Two Scrolls
Jul 8, 2025 • Vivis Dev
Koan 7: The Unburdened Village
Aug 12, 2025 • Vivis Dev
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
Koan 9: The Unfired Pot REDUX
Experience is simply the name we give our mistakes - Oscar Wilde
Dec 16, 2025 • Vivis Dev
Koan 16: The Master's Lesson
Why we need "if __name__ == '__main__'"
Nov 5, 2025 • Vivis Dev
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 distributing python package_data goes wrong
Oct 4, 2025 • Vivis Dev
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
Python Koans
Python Koans
A Python newsletter for developers who want to learn Python through short puzzles and deep explanations
Recommendations
View all 13
Craft Better Software
Craft Better Software
Daniel Moka
TechTalks
TechTalks
Ben Dickson
ToxSec - AI and Cybersecurity
ToxSec - AI and Cybersecurity
ToxSec
The Pragmatic Engineer
The Pragmatic Engineer
Gergely Orosz
ByteByteGo Newsletter
ByteByteGo Newsletter
Alex Xu

Python Koans

AboutArchiveRecommendationsSitemap
© 2026 Python Koans · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture