检查python中的值是否为零

时间:2015-01-29 08:28:11

标签: python python-3.x

我经常检查数字变量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)

4 个答案:

答案 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):

允许整数,浮点数,复数,DecimalFraction个对象。

答案 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