Nel codice seguente, desidero uscire dal ciclo while
non appena a
+ b
+ c
= 1000
. Tuttavia, il test con le dichiarazioni print
mostra che continua fino a quando i loop for
non sono terminati. Ho provato while True
e quindi nel set di istruzioni if
False
ma che risulta in un ciclo infinito. Ho pensato che l'utilizzo di x = 0
e quindi l'impostazione di x = 1
funzionasse, ma anche quello funziona fino al termine dei cicli for
. Qual è il modo più aggraziato e veloce per uscire? Grazie.Exit while loop in Python
a = 3
b = 4
c = 5
x = 0
while x != 1:
for a in range(3,500):
for b in range(a+1,500):
c = (a**2 + b**2)**0.5
if a + b + c == 1000:
print a, b, c
print a*b*c
x = 1
ignorando il problema del ciclo ... si sta andando ad avere problemi di floating point qui ... in particolare, c è un virgola mobile # e così dovrai: arrotondarlo, lanciarlo o controllare se abs (a + b + c-1000) <0,00001 (o qualche altro epsilon). O potrei essere totalmente in errore. – Foon
'c' è mobile, ma non sembra avere importanza. Il programma trova un 'a + b + c = 1000', quindi a quanto pare non interessa' 1000' contro '1000.0'. Buono a sapersi, perché a volte potrebbe essere un problema. – caadrider