应该确定用户是否键入偶数或奇数的程序?

时间:2015-02-05 14:34:37

标签: python python-3.x numbers

确定用户输入的整数是偶数还是奇数的程序。我一直在为elif语句弄错。我做错了什么?

while True:
    reply=input('enter an even or odd integer:') #ASK USER TO ENTER AN EVEN OR ODD INTEGER
    if reply=='stop':break #PRINTS OUT THE WORD 'STOP' IF THE USER WANTS TO EXIT THE PROGRAM
    try:
        num=int(reply) #USER ENTERS NUMBER
    except:
        print('you did not an integer integer')# IF THE USER PRINTS ANYTHING OTHER THAN AN INTEGER
    else:
        if num%2==0:
            print('you printed an even integer')#iF USER TYPES AN EVEN INTEGER, THEY PRINT OUT THIS STATEMENT

    elif num%2!=0:    #IF THE TYPES AN ODD INTEGER , PROGRAM IS THEN SUPPOSED TO DISPLAY THE STATEMENT BELOW
       print('you printed an odd integer')

5 个答案:

答案 0 :(得分:0)

elif转换为if语句,当前代码中没有相应的if块。

while True:
    reply=input('enter an even or odd integer:') #ASK USER TO ENTER AN EVEN OR ODD INTEGER
    if reply=='stop':break #PRINTS OUT THE WORD 'STOP' IF THE USER WANTS TO EXIT THE PROGRAM
    try:
        num=int(reply) #USER ENTERS NUMBER
    except:
        print('you did not an integer integer')# IF THE USER PRINTS ANYTHING OTHER THAN AN INTEGER
    else:
        if num%2==0:
            print('you printed an even integer')#iF USER TYPES AN EVEN INTEGER, THEY PRINT OUT THIS STATEMENT

    if num%2!=0:    #IF THE TYPES AN ODD INTEGER , PROGRAM IS THEN SUPPOSED TO DISPLAY THE STATEMENT BELOW
       print('you printed an odd integer')

或者,将其转换为else语句,并在try-except的else块中使用if语句缩进它:

while True:
    reply=input('enter an even or odd integer:') #ASK USER TO ENTER AN EVEN OR ODD INTEGER
    if reply=='stop':break #PRINTS OUT THE WORD 'STOP' IF THE USER WANTS TO EXIT THE PROGRAM
    try:
        num=int(reply) #USER ENTERS NUMBER
    except:
        print('you did not an integer integer')# IF THE USER PRINTS ANYTHING OTHER THAN AN INTEGER
    else:
        if num%2==0:
            print('you printed an even integer')#iF USER TYPES AN EVEN INTEGER, THEY PRINT OUT THIS STATEMENT
        else:    #IF THE TYPES AN ODD INTEGER , PROGRAM IS THEN SUPPOSED TO DISPLAY THE STATEMENT BELOW
           print('you printed an odd integer')

答案 1 :(得分:0)

问题是ifelif不匹配..您需要缩进更多

while True:
    reply=input('enter an even or odd integer:') #ASK USER TO ENTER AN EVEN OR ODD INTEGER
    if reply=='stop':break #PRINTS OUT THE WORD 'STOP' IF THE USER WANTS TO EXIT THE PROGRAM
    try:
        num=int(reply) #USER ENTERS NUMBER
    except:
        print('you did not an integer integer')# IF THE USER PRINTS ANYTHING OTHER THAN AN INTEGER
    else:
          if num%2==0:
            print('you printed an even integer')#iF USER TYPES AN EVEN INTEGER, THEY PRINT OUT THIS STATEMENT

          elif num%2!=0:    #IF THE TYPES AN ODD INTEGER , PROGRAM IS THEN SUPPOSED TO DISPLAY THE STATEMENT BELOW
            print('you printed an odd integer')

必须具有相同的缩进级别

答案 2 :(得分:0)

订单和缩进很重要,正确的订单是if-elif-else。您无法像if-else-elif那样使用它。如果elif下的else声明,那么您必须将它们放在同一行。

else:
    if num%2==0:
        print('you printed an even integer')#iF USER TYPES AN EVEN INTEGER, THEY PRINT OUT THIS STATEMENT

    elif num%2!=0:    #IF THE TYPES AN ODD INTEGER , PROGRAM IS THEN SUPPOSED TO DISPLAY THE STATEMENT BELOW
   print('you printed an odd integer')

答案 3 :(得分:0)

编写程序的更好方法是:

while True:
reply=input('enter an even or odd integer:') #ASK USER TO ENTER AN EVEN OR ODD INTEGER
if reply=='stop':
    break #TYPE OUT THE WORD 'STOP' IF THE USER WANTS TO EXIT THE PROGRAM
else:
    try:
        num=int(reply) #USER ENTERS NUMBER
        if num%2==0:
            print('you printed an even integer')#iF USER TYPES AN EVEN INTEGER, THEY PRINT OUT THIS STATEMENT

        elif num%2!=0:    #IF THE TYPES AN ODD INTEGER , PROGRAM IS THEN SUPPOSED TO DISPLAY THE STATEMENT BELOW
            print('you printed an odd integer')

    except:
            print('you did not an integer integer')# IF THE USER PRINTS ANYTHING OTHER THAN AN INTEGER

以前您的条件语句不匹配,从而导致错误。

答案 4 :(得分:-1)

你有一个缩进错误。最后一个elif应该处于相同的if num%2==0缩进级别。