我的python程序有什么问题?

时间:2013-03-30 20:58:36

标签: python

我正在学习使用Project Euler在python中编码。我编写了以下程序,我认为应该可行:

a=1
b=1
c=1

while(a<=998):
while(b<=998):
    c=(1000-(a+b)

    if (a*a+b*b==c*c):
        print a,b,c
    b=b+1
a=a+1

但是,当我实际从终端运行程序时,解释器会说第9行

if (a*a+b*b==c*c):

无效。谁能告诉我为什么会这样?

谢谢

2 个答案:

答案 0 :(得分:4)

前一行缺少右括号:

    c=(1000-(a+b)

答案 1 :(得分:3)

假设您正在寻找符合条件的毕达哥拉斯三胞胎并且您不希望三角形具有负面:

for a in range(1, 999):
    for b in range(1, 1000 - a):
        c = 1000 - (a + b)
        if a * a + b * b == c * c:
            print a, b, c

你可以按照以下顺序获得独特的三胞胎:

for a in range(1, 999):
    for b in range(a, 1000 - a):
        c = 1000 - (a + b)
        if a * a + b * b == c * c:
            print a, b, c

原始代码中有一个拼写错误:c=(1000-(a+b)