I really like that for loops can be expressions. It seems obvious in hindsight, but hindsight is always 20/20 :)
It's not, because most languages don't have an `else` clause in their for loop (and in my experience with Python that clause is quite confusing so its use is not common).
And a for loop can be executed 0 times, so without a mechanism for a fallback it might not have a value to yield.
I would think that and the similar case where no iteration hits break are solvable by having a for loop return an optional type.
Say like the for loops in racket, or my own loops for guile scheme: https://git.sr.ht/%7Ebjoli/goof-loop