给定一对整数值,我需要检查两者是否为非负数或两者都是负数。
琐碎的方式是:
def func(a, b):
return (a >= 0 and b >= 0) or (a < 0 and b < 0)
但我正在寻找一些东西&#34; neater&#34;,我相信这是可能的,所以我提出了这个:
def func(a, b):
return (a >= 0) ^ (b >= 0) == 0
然而,这一点对普通读者来说有点模糊&#34;。
有更清洁的方式吗?
谢谢。
答案 0 :(得分:10)
将它们相乘并对0进行测试:
def func(a, b):
return a * b >= 0
答案 1 :(得分:2)
这是Python。我们并不是在所有情况下都能以最简洁有效的方式处理事情 - 这是C ++小伙伴的事情。
如果(a >= 0 and b >= 0) or (a < 0 and b < 0)
是&#34;足够快&#34;,(如果不是这样会让我感到惊讶),那么坚持下去。它的工作原理非常明显。
对于你的第二个解决方案,或者@ coldspeed,我个人不得不在纸上写下一些东西来弄清楚它在做什么,除非函数名称比{{更好“ 1}}。