PEP8 zaleca 4 spacje, a nie dwie.
Dla pierwszego przykładu, zwykle zamiast porównania b == 0
wykorzystuje się, że zerowe wartości są Falsy z konstrukcją not b
if not b:
wynik = 'Nie można dzielić przez 0'
else:
wynik = a / b
print(wynik)
Lub krócej, odwracając logiczność warunku
if b:
wynik = a / b
else:
wynik = 'Nie można dzielić przez 0'
print(wynik)
Jak ktoś chce być zwięzły, to można to skrócić do dwóch linijek wykorzystując zapis x = ... if ... else ...
:
wynik = a / b if b else "Nie można dzielić przez zero"
print(wynik)
W drugim przykładzie można wyjąć print
z bloku try
, gdyż nigdy nie rzuci on ZeroDivisionError
:
try:
wynik = a / b
except ZeroDivisionError:
wynik = 'Nie można dzielić przez 0'
print(wynik)
Co do preferencji (#1 vs #2) niby zaleca się wyjątki (EAFP vs LBYL), ale nie jest to dogmatyczne i oba podejścia są tak samo przyjmowane. Rozwiązanie z wyjątkami będzie pewnie nawet częściej odrzucane, ponieważ łatwiej napisać prosty test na niż wstawiać cały blok razem z długą nazwą wyjątku.