确定用户输入的整数是偶数还是奇数的程序。我一直在为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')
答案 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)
问题是if
和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')
必须具有相同的缩进级别
答案 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
缩进级别。