检查对象是否为数字或布尔值
设计一个逻辑表达式,使其与以下陈述等价:
x
是一个包含三或五个元素的列表,其中第二个元素是字符串'Hip'
,第一个元素不是数字或布尔值。
我现在有的内容:
x = ['Head', 'Hip', 10]
print x[1] is 'Hip'
我的问题是:如何检查一个元素是否是布尔值或数字呢?
8 个回答
38
在Python3中,可以用这个方式来检查:type(x)==bool
。你可以查看这个例子。
50
我觉得最简单的方法是:
type(x) == type(True)
93
针对具体问题的回答:
isinstance(x[0], (int, float))
这段代码是用来检查 x[0]
是否属于元组 (int, float)
中的任何一种类型。
你也可以把 bool
加进去,但其实没必要,因为 bool
本身就是 int
的一个子类。
文档参考:
关于你当前代码的评论,你不应该依赖于 短字符串的内部存储。比较字符串时应该使用 ==
运算符:
x[1] == 'Hip'