积极否定 - 简单的Python练习

时间:2016-08-27 21:52:50

标签: python

给定2个int值,如果一个为负数且一个为正数,则返回True。除非参数"否定"如果两者都是负数,则返回True。

我终于明白了。

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)

但是......为什么我会返回那两行而不是True?我怎么知道在类似的情况下这样做?

3 个答案:

答案 0 :(得分:1)

你没有归还那两行。您将返回评估为的那两行的值。在您的情况下,这些是布尔表达式,将评估为true或false。最终的布尔值是函数返回的值。

答案 1 :(得分:1)

Python评估return语句后面的任何表达式,评估结果是返回的结果。您使用了两个布尔表达式:

(a < 0 and b < 0)

如果a&lt;&lt; 0和b <0 0;否则评估为False

(a > 0 and b < 0) or (a < 0 and b > 0)

如果任何一个括号计算为True,则计算结果为True;否则评估为False

这就是你想要的。因此pos_neg会根据指定的输入自动返回True或False。

也许您正在考虑测试每个条件的True / False,然后在条件为True时使用if语句到return True,如果条件为False则使用return False。这可行,但会不必要地长而复杂。在这里,您只需返回每个表达式的布尔值,无论是True还是False

答案 2 :(得分:0)

def number_group(number):
   if number > 0:
      return "Positive"
   elif number < 0:
      return "negative"
   else:
      return "zero"

print(number_group(10)) #Should be Positive
print(number_group(0)) #Should be Zero
print(number_group(-5)) #Should be Negative