2016-04-13 132 views
0

以下两个功能产生类似的结果如何打印布尔返回值

def is_between(x, y ,z): 
    return x <= y <= z 
is_between(1, 2, 3) 

def is_between(x, y, z): 
    if x <= y <= z: 
     print(True) 
     return True 
    else: 
     print(False) 
     return False 
is_between(1, 2, 3) 

第一功能更有效地返回一个布尔值比所述第二功能。另一方面,第二个函数使用条件来描述它将如何返回真实以及何时返回错误,从而为我们提供打印每种可能性的机会,如果它们发生的话。

是否可以打印或以其他方式使用由第一个函数返回的布尔值?我尝试打印(is_between),但这是不正确的。

解决方案:

这工作

def is_between(x, y ,z): 
    return x <= y <= z 
print(is_between(1,2,3)) 

这不

def is_between(x, y ,z): 
    return x <= y <= z 
is_between(1,2,3) 
print(is_between) 
+1

只是'print(is_between)'?你熟悉调用函数吗? – TigerhawkT3

+1

我在最后传递了它的值,关闭了这个函数。杰克已经证明,如果你在打印语句本身传递值,它就可以工作。 – PencilCrate

+0

你是否在任何地方尝试'bool()'函数?还要注意第二个函数不返回'True'或'False';它总是'没有'。 – TigerhawkT3

回答

0

尝试print(is_between(1, 2, 3))

可以print(is_between),但你会得到像<function is_between at 0x7fde2aebee18>。那是因为你没有这个叫的功能。您需要将参数传递给函数以获取结果。

您可以直接打印的结果,如上述,或使用结果 - 其分配给一个变量(例如returned_value = is_between(1,2,3)),用它在有条件(if is_between(1,2,3): ...)等

+0

我在函数的最后提供了参数,并在之后立即尝试打印。你在print语句中包含参数的方法。我不知道你为什么会陷入低谷。在时间限制过后,我将被标记为正确的答案,并且我被允许。 – PencilCrate

-1

要使用简单地做:

if is_between(1, 2, 3): 
    # Do somthing 

要简单地打印:

print(is_between(1, 2, 3)) 

问题在你的代码是你尝试打印功能,而不是它的返回值。