Python Koans
Subscribe
Sign in
Home
Notes
Archive
About
Latest
Top
Discussions
Koan 20: The Unreliable Messenger
Exploring traps in try/finally blocks, and the reasoning behind PEP601 and PEP765
May 11
•
Vivis Dev
3
January 2026
Koan 19: The Unhelpful Eclipse
On the fragility of unintended behavior and the wisdom of explicit paths
Jan 30
•
Vivis Dev
3
1
Koan 18: The Loose Bundle
Exploring the pitfalls of raw string literals in Python
Jan 14
•
Vivis Dev
3
Koan 17: The Watchman at the Gate
A look into Python's regex module
Jan 7
•
Vivis Dev
6
2
1
December 2025
Koan 9: The Unfired Pot REDUX
Experience is simply the name we give our mistakes - Oscar Wilde
Dec 16, 2025
•
Vivis Dev
4
November 2025
Koan 16: The Master's Lesson
Why we need "if __name__ == '__main__'"
Nov 5, 2025
•
Vivis Dev
1
October 2025
Koan 15: The Invisible Ink
Understanding Unicode equivalence and the deceptive nature of glyphs
Oct 23, 2025
•
Vivis Dev
7
2
Koan 14: The Missing Grain
When distributing python package_data goes wrong
Oct 4, 2025
•
Vivis Dev
1
September 2025
Koan 13: The Empty Bowl
Understanding Python dataclasses and how fields determine equality and hashing.
Sep 24, 2025
•
Vivis Dev
4
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
1
1
Koan 11: The Flowing River (Part 2)
Understanding how Python's list comprehensions work under the hood
Sep 9, 2025
•
Vivis Dev
4
Koan 10: The Flowing River (Part 1)
Understanding how Python's list comprehensions work under the hood
Sep 2, 2025
•
Vivis Dev
3
1
This site requires JavaScript to run correctly. Please
turn on JavaScript
or unblock scripts