Python Koans
Subscribe
Sign in
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
3
Most Popular
View all
Koan 15: The Invisible Ink
Oct 23, 2025
•
Vivis Dev
7
2
Koan 1: The Empty Path
Jul 1, 2025
•
Vivis Dev
21
6
6
Koan 2: The Tale of Two Scrolls
Jul 8, 2025
•
Vivis Dev
12
2
2
Koan 7: The Unburdened Village
Aug 12, 2025
•
Vivis Dev
8
2
2
Latest
Top
Discussions
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
Koan 9: The Unfired Pot REDUX
Experience is simply the name we give our mistakes - Oscar Wilde
Dec 16, 2025
•
Vivis Dev
4
Koan 16: The Master's Lesson
Why we need "if __name__ == '__main__'"
Nov 5, 2025
•
Vivis Dev
1
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
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
See all
Python Koans
A Python newsletter for developers who want to learn Python through short puzzles and deep explanations
Subscribe
Recommendations
View all 13
Craft Better Software
Daniel Moka
TechTalks
Ben Dickson
ToxSec - AI and Cybersecurity
ToxSec
The Pragmatic Engineer
Gergely Orosz
ByteByteGo Newsletter
Alex Xu
Python Koans
Subscribe
About
Archive
Recommendations
Sitemap
This site requires JavaScript to run correctly. Please
turn on JavaScript
or unblock scripts