2011-09-01 77 views
0

我在定义函数时遇到了一些问题。我正在尝试在不调用abs的情况下将b的绝对值添加到内存中。如何在没有调用abs的情况下添加a的绝对值

from operator import add, sub 
def a_plus_absolute_b(a, b): 
    """Return a+abs(b), but without calling abs.""" 
    if b < 0: 
     op = add(a, (b * -1)) 
    else: 
     op = add(a, b) 
    return op(a, b) 
+2

你的问题在哪里? –

+2

为什么你不能调用abs()'? –

+1

@丹尼尔:因为它是作业。 –

回答

7

您无需为此导入add()

你为什么不干脆

def a_plus_absolute_b(a, b): 
    """Return a+abs(b), but without calling abs.""" 
    if b < 0: 
     result = a - b 
    else: 
     result = a + b 
    return result 
+0

我刚才说'返回a - b如果b <0 else a + b' –

4

你正在寻找解决方案,你可以俯瞰这是因为你用的“负”的理念痴迷,如下:

from operator import add, sub 
def a_plus_absolute_b(a, b): 
    """Return a+abs(b), but without calling abs.""" 
    if b < 0: 
     op = sub 
    else: 
     op = add 
    return op(a, b) 

请注意,用于调用函数的parens只在最后一行。

相关问题