我经常检查数字变量number
的值是否为if number
,但有时数字可能为零。所以我通过if number or number == 0
来解决这个问题。
我能以更聪明的方式做到这一点吗?我认为分别检查值是否为零有点难看。
我想我可以检查该值是否为带
的数字def is_number(s):
try:
int(s)
return True
except ValueError:
return False
但我仍然需要查看if number and is_number(number)
。
答案 0 :(得分:32)
如果number
可能是None
或一个号码,并且您想要加入0
,请在None
上过滤:
if number is not None:
如果number
可以是任意数量的类型,请测试类型;您可以使用元组测试int
或类型组合:
if isinstance(number, int): # it is an integer
if isinstance(number, (int, float)): # it is an integer or a float
或者也许:
from numbers import Number
if isinstance(number, Number):
允许整数,浮点数,复数,Decimal
和Fraction
个对象。
答案 1 :(得分:9)
零和无对于if块都被视为相同,下面的代码应该可以正常工作。
if number or number==0:
return True
答案 2 :(得分:1)
更简单的方法:
h = ''
i = None
j = 0
k = 1
print h or i or j or k
将打印1
print k or j or i or h
将打印1
答案 3 :(得分:0)
您可以检查它是否可以转换为十进制。如果是,那么它是一个数字
Access to the path server.cache.bin is denied