Skip to main content
 首页 » 编程设计

python之寻找简单条件的指导

2025年05月04日14lexus

我正在寻找一些指导,以了解我在回答这个问题时逻辑哪里出了问题:

'给定 2 个 int 值,如果一个为负,一个为正,则返回 True。除非参数“negative”为 True,否则仅当两者均为负时才返回 True。'

这是我的尝试。我以为我在正确的轨道上,我哪里错了?

def pos_neg(a, b, negative): 
  if negative: 
      if a < 0 and b < 0: 
           return True 
  elif ((a < 0 or b > 0) or (a > 0 or b < 0)): 
      return True 
  else: 
      return False 

这是解决方案:

def pos_neg(a, b, negative): 
    if negative: 
        return (a < 0 and b < 0) 
    else: 
        return ((a < 0 and b > 0) or (a > 0 and b < 0)) 

请您参考如下方法:

让我们从 negative 开始分支:

if negative: 
    if a < 0 and b < 0: 
        return True 

如果 if a < 0 and b < 0不是 True 你不返回任何东西,但你应该返回 False :

if negative: 
    if a < 0 and b < 0: 
        return True 
    else: 
        return False 

这也可以简化,因为 a < 0 and b < 0已经是应该返回的结果,所以你也可以使用不那么冗长的:

if negative: 
    return a < 0 and b < 0 

那么第二种情况逻辑错误:

elif ((a < 0 or b > 0) or (a > 0 or b < 0)): 

如果 (a < 0) 应该触发和 (b > 0)是 True 并且对于第二个 parens 也是如此。所以应该是:

elif ((a < 0 and b > 0) or (a > 0 and b < 0)): 
  return True 
else: 
  return False 

同样你可以在这里使用不太冗长的:

else: 
    return ((a < 0 and b > 0) or (a > 0 and b < 0))