Мне нравится использовать продолжение в циклах, где нужно выполнить много заданий, прежде чем приступить к делу.Поэтому вместо кода, подобного этому:
for x, y in zip(a, b):
if x > y:
z = calculate_z(x, y)
if y - z < x:
y = min(y, z)
if x ** 2 - y ** 2 > 0:
lots()
of()
code()
here()
я получаю код, подобный следующему:
for x, y in zip(a, b):
if x <= y:
continue
z = calculate_z(x, y)
if y - z >= x:
continue
y = min(y, z)
if x ** 2 - y ** 2 <= 0:
continue
lots()
of()
code()
here()
Делая это таким образом, я избегаю очень глубоко вложенного кода.Кроме того, легко оптимизировать цикл, удалив сначала наиболее часто встречающиеся случаи, так что мне приходится иметь дело только с нечастыми, но важными случаями (например, делитель равен 0), когда нет другого showtopper.