【发布时间】:2017-07-12 19:39:57
【问题描述】:
我正在寻找一些指导,说明我在回答这个问题时的逻辑出了什么问题:
'给定 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))
【问题讨论】:
-
在第二个条件中,您作为尝试提供的示例(我假设是第一个代码 sn-p),您在应该使用“和”的地方使用“或”。
-
有一个没有返回任何东西的分支。
-
@Rawing - 更准确地说,有一个分支隐式返回
None。
标签: python