Není odděleno UI od výkonného kódu.
Jestli to nebude tím, že je to jen příklad a ne kus normální aplikace.
Není jasné co se stane po stisku Ctrl+C, tipuji že nic nebo to zbuchne celé na nějakou extra výjimku
Vyhodí to KeyboardInterrupt. Který to vyhodí i kdekoliv jinde, nejenom ve funkci input, ten musí být ušetřený zvlášť.
Validace údajů od uživatele se nedělá přes výjimky.
To je tvrzení typu "já nedělám validaci dat přes výjimky, takže každý kdo to tak udělá je ignorant". Pak se na to můžeš dívat opačně. python nabízí validaci vstupu tak, že funkce převádející string na int vyhodí výjimku. Jen ignorant by nepoužil standardní validaci, kterou python nabízí. Můžeš si to reimplementovat samozřejmě sám, ale je to blbost.
Validace proti nule na vstupu se dělá explicitně, ne jako ZeroDivisionError.
Znovu se ptám, co je na tom kódu špatně a kdy nebude fungovat?
Nejsou ošetřeny výjimky FloatingPointError, OverflowError a další, doufám že to mylně nevypíše neznámou výjimku a za tím "Dovidenia".
Nejsou, protože v pythonu se nic takového ošetřovat nemusí:
>>> 1/int("999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999")
1e-156