2011-09-01 4 views
0

함수를 정의하는 데 약간의 문제가 있습니다. 나는 당신이에 대한 add()를 가져올 필요가 없습니다 호출 복근ab의 절대 값에 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

@Daniel : 숙제이기 때문에. –

답변

7

없이 B의 절대 값에 추가하기 위해 노력하고있어.

는 "부정"의 아이디어에 집착하고 있기 때문에 당신이 내려다 보이는하고 당신이 찾고있는이 솔루션은,

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) 

기능을 호출하는 데 사용되는 괄호가 마지막 행에만있는 방식에 유의하십시오.

관련 문제