设计一个等价于以下语句的逻辑表达式:
x
是一个包含三个或五个元素的列表,其中第二个元素是
字符串'Hip'
其中第一个不是数字或布尔值。
我拥有的:
x = ['Head', 'Hip', 10]
print x[1] is 'Hip'
我的问题:如何检查它是布尔值还是数字?
回答具体问题:
isinstance(x[0], (int, float))
这检查是否x[0]
是元组中任何类型的实例(int, float)
.
你可以加bool
也在那里,但没有必要,因为bool
本身是一个子类int
.
文档参考:
- isinstance() http://docs.python.org/2/library/functions.html#isinstance
- 内置数字类型 http://docs.python.org/2/library/stdtypes.html#numeric-types-int-float-long-complex
要评论您当前的代码,您不应该依赖短字符串的实习 http://en.wikipedia.org/wiki/String_interning。你应该将字符串与==
操作员:
x[1] == 'Hip'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)