Вы можете использовать предложение else
с for
l oop. Он выполняется только в том случае, если for l oop не прерывается break
.
for i in range(3):
print(i)
else:
print('hello')
# prints:
0
1
2
hello
for i in range(3):
print(i)
if i==1:
break
else:
print('world')
# prints:
0
1
Обратите внимание, что world
не печатается, поскольку l oop было прервано break
оператор.
Однако, поскольку у вас есть 2 для циклов, ваш оператор break
сломает только самый внутренний l oop. Чтобы разорвать оба цикла, вы можете использовать флаг, чтобы остановить выполнение.
HALT = False
for x in range(-10,10):
for y in range(-10,10):
if ((a*x) + (b*y)) == c and ((d*x) + (e*y)) == f:
print(x, y)
HALT = True
break
if HALT:
break
else:
print('No solution')
Используя itertools.product
, вы можете обойтись без внутреннего l oop и флага HALT
.
from itertools import product
for x, y in product(range(-10, 10), repeat=2):
if ((a*x) + (b*y)) == c and ((d*x) + (e*y)) == f:
print(x, y)
break
else:
print('No solution')