Elif语句语法错误:语法无效?

时间:2014-09-28 16:55:02

标签: python

以下是我的代码:

menu= "Welcome to the menu\n"                                     \
+     "Please select an option below:\n"                          \
+ (   "0 - Enter a number\n"   + "1 - Display current number\n" + \
"2 - Divisibility checking\n"  + "3 - Perfect checking\n"       + \
"4 - Triangular checking\n"    + "5 - Quit\n" )
x == ("")
while option!=5:                                                  # <<< Q2
    print(menu) 
    option= int(input("Enter option: "))
    if option==0:
        x= int(input("What is your number?: "))
        while x <=0:
             x= int(input("Must be positive, please! What is your number?: ")
    elif option==1:                                               # <<< Q1
        print("The current number is", x)
        elif (x == ""):
            print("No number yet - Please input a number and try again.")
            x= int(input("What is your number?: "))

Q1: 我想知道为什么我不断收到line 14我的代码的错误消息,以及第二个elif语句。

Q2: 我还想知道,对于我的第一个while声明,我可能会定义&#34; option&#34;如果我还没有提示用户输入选项,则option!=5然后print菜单。

对这两种情况的任何帮助都会非常感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

关于你的第二个elif声明,我认为你的嵌套错了。

您有一个外部决策树,您可以在其中查看可用选项,树是:

if option == 0 --> do a
elif option == 1 --> do b
elif option == 2 --> do c and so on 

你不需要in inner elif,因为它不是所选选项的else语句。您刚刚开始一个新的决策树(您试图找到x是否已经分配,​​如果没有请求数字,否则显示数字)。因此,正确的代码应该是:

elif option == 1:
    if x == "":
        print("No number yet - Please input a number and try again.")
        x= int(input("What is your number?: "))
    else: 
        print("The current number is", x)
elif option == 2 
    --> Handling of option 2

这应该有效。我首先把if语句放在首位,否则你会得到输出

"The current number is  "
"No number yet - Please input a number and try again."...

我认为这几乎就是伊格纳西奥所说的,当他问道,你是否知道这些精灵所属的时候。