检查对象是否为数字或布尔值

73 投票
8 回答
171169 浏览
提问于 2025-04-17 16:44

设计一个逻辑表达式,使其与以下陈述等价:

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'

撰写回答