python if-else只去了其他部分

时间:2016-04-30 16:19:42

标签: python python-2.7

我有以下简单的代码,用于检查用户输入。

while True:
    num = raw_input("Enter the number :")
    if (num >= 1 and num <= 5):
        break
    else:
        print "Error! Enter again :"

当我提供输入0或大于5的数字时,它可以正常工作,但之后我尝试从15提供输入,程序仍然转到else部分。你能帮我找到我的错误吗?

2 个答案:

答案 0 :(得分:3)

num是一个字符串,而不是数字。您需要先使用raw_inputint()的返回值转换为数字:

>>> n = raw_input('Type stuff: ')
Type stuff: 123
>>> type(n)
<type 'str'>
>>> n
'123'
>>> int(n)
123
>>> type(int(n))
<type 'int'>

答案 1 :(得分:2)

您需要将其投射到int -

 num = int(raw_input("Enter the number :"))

作为raw_input读取行并将其转换为string