我正在通过一个初学者python教程,我正在尝试做一些比教程要求更多条件的选项
elif option == "2":
print "Choose a number for opt 2"
var_in = raw_input("> ")
if 0 < var_in < 5 or 1 <= var_in < 5:
print "between 1-5"
elif var_in == "0": #works
print "Zero"
else:
print "Greater than 5!" #works
如果我为var_in输入0以外的任何内容,我会收到消息“大于5!”。
我也尝试过使用:
elif option == "2":
print "Choose a number for opt 2"
var_in = raw_input("> ")
if var_in in range(1, 5):
print "between 1-5"
elif var_in == "0": #works
print "Zero"
else:
print "Greater than 5!" #works
与上述结果相同。
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
var_in是一个字符串,而不是整数。你应该这样做:
try:
var_in = int(raw_input("> "))
except:
print "Incorrect input."
else:
if 0 < var_in <= 5 :
print "between 1-5"
elif var_in == 0: #works
print "Zero"
else:
print "Greater than 5!" #works
答案 1 :(得分:1)
raw_input
返回一个字符串。你不能有意义地将字符串与数字进行比较; Python 2将给你一个毫无意义的结果,Python 3将TypeError
。在进行比较之前将其变为int
:
user_input = int(raw_input('> '))