Python条件if语句失败
我正在学习python初学者教程,我试图通过向选项中添加条件来完成教程要求的更多工作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
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('> '))