I wrote the program about Pythagorean I got my answer but python doesn’t read (break) after (if) .
My program title : (Special Pythagorean triplet),
there is a one answer exist for ((a+b+c=1000)&(a**2 + b**2 =c**2) )
I want find abc .
I know (a=200, b=375, c=425)
but when program starts it never stop and it continue.
It also types the product of these three numbers.
import random as r def pyth(b,d,c): pyth = None if b**2+c**2 == d**2 : pyth = True h=d*c*b print(h) return pyth if b**2+d**2==c**2 : pyth= True h=d*c*b print(h) return pyth if d**2 + c**2 == b**2: pyth =True h=d*c*b print(h) return pyth else: pyth = False return a = list(range (150,1000)) b=0 c=0 d=0 h = 0 for i in range(0,10000000): b = r.choice(a) c = r.choice(a) d = 1000-b-c e = b+c+d if e == 1000 : pyth(b,d,c) if pyth == True: break else: continue
Advertisement
Answer
There’s no need for the pyth
variable. You can just use return True
or return False
.
The if
statement needs to be indented so it’s in the loop.
You need to test the value of the function call.
You don’t need else: continue
. Loops automatically continue unless you break out of them. continue
is only needed when you want to skip the rest of the loop body and start the next iteration; it’s not needed at the end of the body.
import random as r def pyth(b,d,c): if b**2+c**2 == d**2 : h=d*c*b print(h) return True if b**2+d**2==c**2 : h=d*c*b print(h) return True if d**2 + c**2 == b**2: h=d*c*b print(h) return True else: return False a = list(range (150,1000)) for i in range(0,10000000): b = r.choice(a) c = r.choice(a) d = 1000-b-c e = b+c+d if e == 1000 and pyth(b,d,c) break