检查python中的值是否为零

Jam*_*een 23 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
Run Code Online (Sandbox Code Playgroud)

但是我仍然需要检查if number and is_number(number).

Mar*_*ers 37

如果number可能是None 或数字,并且您想要包括0,请过滤None:

if number is not None:
Run Code Online (Sandbox Code Playgroud)

如果number可以是任意数量的类型,测试类型 ; 你可以int使用元组测试一个或多个类型的组合:

if isinstance(number, int):  # it is an integer
if isinstance(number, (int, float)):  # it is an integer or a float
Run Code Online (Sandbox Code Playgroud)

也许:

from numbers import Number

if isinstance(number, Number):
Run Code Online (Sandbox Code Playgroud)

允许整数,浮点数,复数Decimal和Fraction对象.


Ame*_*iye 9

对于if块,Zero和None都被视为相同,下面的代码应该可以正常工作.

if number or number==0:
    return True
Run Code Online (Sandbox Code Playgroud)