Real-world match/case
nedbatchelder.com
nedbatchelder.com
"Name bindings made during a successful pattern match outlive the executed block ... During failed pattern matches, some subpatterns may succeed. Do not rely on bindings being made for a failed match. Conversely, do not rely on variables remaining unchanged after a failed match. The exact behavior is dependent on implementation"
Python also - perhaps as expected given its nature as a dynamically typed language - doesn't end up delivering irrefutable matching that you might be familiar with from functional languages with a pattern match. So you're going to need to write that default case just on the chance you screwed up and missed something, if you forgot to handle Tuesday this design just assumes you intended to ignore Tuesdays because you didn't mention them.
From what I can tell adoption of them is very slow going in the python world despite it being a pretty good implementation of structural pattern matching. Pyright/pylance is also able to reason well around them.