关于python:检查两个值是否为非负值或均为负值

Check if two values are both non-negative or both negative

给定一对整数值,我需要检查两个都是非负的还是都是负的。

简单的方法是:

1
2
def func(a, b):
    return (a >= 0 and b >= 0) or (a < 0 and b < 0)

但我在寻找一种"干净"的东西,我相信这是可能的,所以我想出了这个办法:

1
2
def func(a, b):
    return (a >= 0) ^ (b >= 0) == 0

不过,这本书让普通读者觉得有点"晦涩"。

有更干净的方法吗?

谢谢您。


将它们相乘并测试0:

1
2
def func(a, b):
    return a * b >= 0


这是Python。我们不是关于在所有情况下做事情的最简洁有效的可能方式——这是C++程序所要做的。

如果(a >= 0 and b >= 0) or (a < 0 and b < 0)足够快(如果不是这样的话,我会感到惊讶),那么就坚持下去。它起作用,而且很明显它是做什么的。

无论是您的第二个解决方案还是@coldspeed,我个人都需要在纸上写一些东西来弄清楚它在做什么,除非函数名比func要好得多。