第 18 行 "N" 的语法错误

Syntax error on the "N" on line 18

我一直在 Python 开发这个简单的程序,这样我就可以开始尝试 Python 并通过设计对 Python 和其他编程语言有更多的了解以一种其他人可以有效地使用它们的方式使用它们,而不会被使该代码工作的部分所困扰。我一直在通过一个简单的程序计算 "Angles in a triangle" 来做到这一点,因为它是一个简单的主题。最近,我用 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 上收到语法错误: 任何提示都会很棒。

else 没有条件.. 删除它只是说

else:

或者写成

elif N == 3:

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

elif N == 3:

您的意思是 elif(Python 代表 else..if),或者 else

如果你的意思是普通 else,它不需要条件。

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

    else: # N == 3

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

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

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