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++程序所要做的。
如果
无论是您的第二个解决方案还是@coldspeed,我个人都需要在纸上写一些东西来弄清楚它在做什么,除非函数名比