检查python中的值是否为零或不为空

新手上路,请多包涵

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

原文由 Jamgreen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 334
2 个回答

If number could be None or a number, and you wanted to include 0 , filter on None instead:

 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 对象。

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

 if number or number==0:
    return True

原文由 Amey Jadiye 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题