Python条件if语句失败

Python条件if语句失败,python,if-statement,Python,If Statement,我正在学习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

我正在学习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是字符串,而不是整数。你应该这样做:

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
试试看:
var\u in=int(原始输入(“>”)
除:
打印“输入错误”
其他:

如果0
原始输入中的TypeError
。在进行比较之前,将其转换为
int

user_input = int(raw_input('> '))

为什么您要在<5
中同时测试
01 Perfect,这就解决了它,谢谢。为什么=='0'仍然有效?@D3C4FF:
'0'
是一个字符串。将字符串与其他字符串进行相等比较的效果与您预期的一样。我以前没有使用过“try”和“except”。我假设这意味着,如果未输入int,它将因错误而失败?我是否可以建议使用
除值错误
,而不是使用覆盖的
除值错误
?最好只捕获预期的异常。@D3C4FF如果字符串无法转换为
int
,Python将引发
ValueError
try:except:
块可用于捕获此错误并提供备用执行路径。@SethMMorton是,except-ValueError更准确。唯一的“except”捕捉所有类型的EXCEPTION。@D3C4FF:如果系统无法将输入转换为整数,则将执行except块。
user_input = int(raw_input('> '))