#python #if-statement
#python #if-statement
Вопрос:
Я написал программу о Pythagorean, я получил свой ответ, но python не читает (прерывает) после (if) . Название моей программы: (Специальный пифагорейский триплет), существует один ответ, потому ((a b c=1000)amp;(a**2 b**2 =c**2) )
что я хочу найти b c . Я знаю (a=200, b=375, c=425)
, но когда программа запускается, она никогда не останавливается и продолжается. Он также вводит произведение этих трех чисел.
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
Комментарии:
1.
break
может использоваться только вfor
while
цикле or . Вашbreak
не находится в цикле.2. Вы не должны использовать одно и то же имя
pyth
для переменной и функции. Переменная заменяет функцию.3. Вы правильно скопировали отступ? Вы должны получать сообщение об ошибке, когда
break
иcontinue
находятся вне цикла.4.
if pyth == True
никогда не будет успешным.pyth
это функция, а не значение, возвращаемое функцией.5. @Grismar Почему? Он хочет, чтобы цикл останавливался, когда функция возвращает успех.
Ответ №1:
Переменная не нужна pyth
. Вы можете просто использовать return True
или return False
.
if
Оператор должен иметь отступ, чтобы он находился в цикле.
Вам нужно проверить значение вызова функции.
Вам не нужно else: continue
. Циклы автоматически продолжаются, если вы не выйдете из них. continue
требуется только тогда, когда вы хотите пропустить остальную часть тела цикла и начать следующую итерацию; он не нужен в конце тела.
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