给定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?我怎么知道在类似的情况下这样做?
答案 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