我正在处理的项目的当前解决方案要求我评估正在传递的数据的类型。但是,我注意到了奇怪的行为,这是我无法理解的逻辑。
one = ["hello",True,14,23.2]
for objects in one:
if type(objects) is int:
print(type(objects))
__________________________
Results:
<class 'int'>
上面的代码和结果是有意义的,因为列表中只有一个对象是int。但是,当我的情况如下所示时,结果对我来说看起来完全不合逻辑:
for objects in one:
if type(objects) is int or bool:
print(type(objects))
________________________
Results:
<class 'str'>
<class 'bool'>
<class 'int'>
<class 'float'>
为什么要打印所有类型?我认识到我的if语句的语法可能不正确,但是如何以一种接受类型&#39; str&#39;并且&#39;漂浮&#39;?解决方案是什么?
如果这是重复,那么道歉。我不确定如何用这个问题来搜索!
编辑:这是重复的 - 非常感谢我指出了正确的方向。对于那些想知道的人 - 它会因为代码“bool”而被打破。让Python认为我要问一个关于“bool&#39;这是真的......它基本上认为我问这个:
if bool:
而不是:
if type(objects) is bool: