如果不是,则其他条件

时间:2019-06-28 16:36:51

标签: python if-statement boolean

我正在处理CodingBat问题,以便更好,更有效地学习,而我所面临的问题是:

Given 2 int values, return True if one is negative and one is positive. Except if the parameter "negative" is True, then return True only if both are negative.


pos_neg(1, -1, False) → True
pos_neg(-1, 1, False) → True
pos_neg(-4, -5, True) → True

我编写了该代码以运行所需的过程

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

但我知道

Compile problems:


invalid syntax (line 4)

为错误。 CondaBat提供的解决方案是:

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))

我看到与我的示例代码相比,给出的示例代码更快,更高效,但是我不明白为什么我的elif语句返回错误。

1 个答案:

答案 0 :(得分:1)

在省略号后您缺少一个冒号

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