Остановка итерации без использования `break` в Python 3
Например, можно ли переписать этот код безbreak
(и безcontinue
или жеreturn
)?
import logging
for i, x in enumerate(x):
logging.info("Processing `x` n.%s...", i)
y = do_something(x)
if y == A:
logging.info("Doing something else...")
do_something_else(x)
elif y == B:
logging.info("Done.")
break
РЕДАКТИРОВАТЬ: так как некоторые люди критикуют использованиеbreak
а такжеcontinue
внутри циклов, мне было интересно, разрешено ли Python писатьfor
петли без них. Я бы сказал, что Python этого не допускает (и, возможно, он идет вразрез с правилом «один способ сделать это»).
РЕДАКТИРОВАТЬ 2: Комментаторы заставили меня заметить, чтоreturn
можно использовать вместо этого, но это тоже не будет решением.