" N"上的语法错误在第18行

时间:2015-10-31 22:51:47

标签: python if-statement syntax

我一直在使用Python开发这个简单的程序,因此我可以开始尝试使用Python,并且通过以其他人可以在其中使用它们的方式设计它们,从而更好地了解Python和其他编程语言。高效的方式,而不会陷入使代码工作的部分。我通过一个简单的程序来计算"三角形中的角度"因为它是一个简单的主题。最近,我用if语句替换了def():命令,因为它将键入减少到最小并且使其他人更容易,但是当我尝试运行此代码时,我得到语法错误消息,其中N在第17行突出显示。

def triangle():
    N = int(input("Please enter the number of angles you currently have between 1 and 3: "))
    if N == 1:
        a = int(input("What's one of the angles?"))
        b = int(input("What's the other angle in the triangle?"))
        c = a + b
        f = 180 - c
        print(f)
        print("If you'd like to continue, please type in triangle()")

    elif N == 2:
        a = int(input("What's the value of angle 1?"))
        b = 180 - a
        c = b /2
        print(c)
        print("If you'd like to continue, please type in triangle()")

    else N == 3:
        a = 180
        b = 180 / 3
        print(b)
        print("If you'd like to continue, please type in triangle()")

但是我在elif N == 3上返回了语法错误: 任何提示都会很棒。

3 个答案:

答案 0 :(得分:2)

其他没有条件..删除它只是说

else:

或者说它

elif N == 3:

答案 1 :(得分:1)

你有else N == 3:。这不是if..elif..else结构的工作原理 - 如果前面的elseif条件都不满足,则elif是一个全能分支。如果您要专门检查N == 3而没有其他值,请使用elif N == 3。如果您想要一个包罗万象的条件,只需使用else:

答案 2 :(得分:0)

elif N == 3:

您的意思是elif(适用于else..if的Python)或else

如果你的意思是else,那就没有条件。

如果您想注释else意味着某个条件已满足,那么我会使用注释:

    else: # N == 3

但那被认为是不好的风格:只有当你确定N不能拥有除1,2,3之外的任何其他值时才这样做。在您的情况下,用户还可以输入任意数字4,5,..,9(或者实际上是10或更大,或者实际上是0或任何负数),这将错误地由N == 3分支处理。

如果您的最后一个分支elif N == 3,没有else - 子句,则无效的数字将无声地失败树中的每个分支。 因此,为了完整性和完整性检查,您可能更愿意这样做:

    ...
elif N ==3:
    # Handle N == 3 case
else:
    print "Invalid number!"