为什么Python不读取下一行(if)?

为什么Python不读取下一行(if)?,python,if-statement,Python,If Statement,我写了一个关于毕达哥拉斯的程序,我得到了答案,但是python在(if)之后不读取(break)。 我的节目名称:(特殊毕达哥拉斯三胞胎), 对于((a+b+c=1000)和(a**2+b**2=c**2))我想找到abc。 我知道(a=200,b=375,c=425),但当程序启动时,它从不停止,它会继续。 它还输入这三个数字的乘积 import random as r def pyth(b,d,c): pyth = None if b**2+c**2 == d**2 :

我写了一个关于毕达哥拉斯的程序,我得到了答案,但是python在(if)之后不读取(break)。 我的节目名称:(特殊毕达哥拉斯三胞胎), 对于
((a+b+c=1000)和(a**2+b**2=c**2))
我想找到abc。 我知道
(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

不需要使用
pyth
变量。您可以使用
返回True
返回False

if
语句需要缩进以使其处于循环中

您需要测试函数调用的值

您不需要
其他:继续
。循环将自动继续,除非您中断循环<代码>继续
仅当您希望跳过循环体的其余部分并开始下一次迭代时才需要;它不需要在身体的末端

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

break
只能在
for
while
循环中使用。您的
break
不在循环中。变量和函数不应使用相同的名称
pyth
。变量正在替换函数。缩进复制是否正确?当
break
continue
在循环之外时,应该会出现错误。
如果pyth==True
将永远不会成功
pyth
是一个函数,不是函数返回的值。@Grismar为什么?他希望在函数返回成功时停止循环。