Python类型变量错误消息

时间:2016-06-12 14:53:32

标签: python python-2.7

为什么我在python控制台中运行此代码时会不断收到错误消息?我输入5。

a = raw_input("type a number here: ")

if type(a) != int == False:

    print ("Input verified!")

elif type(a) != float == False:

    print ("Input verified!")

else:

    print ("Wrong!")

1 个答案:

答案 0 :(得分:4)

type(a) != int == False链式比较,评估为:

(type(a) != int) and (int == False)

int == False总是假的。

不要在布尔测试中使用== False== True;直接测试或使用not。另外,使用isinstance()来测试特定类型:

if isinstance(a, int):
    # ...

但是,raw_input()会返回str类型的对象,始终。它不会生成intfloat类型的对象。您需要使用float()显式转换,然后使用异常处理来处理非有效整数或浮点数的输入:

try:
    result = float(a)
    print 'Input verified'
except ValueError:
    print 'Sorry, I need a number'

另见Asking the user for input until they give a valid response