求解答 python好难🤯!

不明白 def addop(f,a,b)的f指的是啥,然后lambda后面知道大约的写法 但是后面的两个参数又给我搞懵了😇

img

f就是你要传递给他的lambda表达式

def addIt(a, b):
    if a > b:
        return 0
    else:
        return a + addIt(a + 1, b)


print(addIt(1, 4))

def addSquare(a,b):
    if a>b:
        return 0
    else:
        return a*a+addSquare(a+1,b)


print(addSquare(1, 4))

def addCube(a,b):
    if a>b:
        return 0
    else:
        return a**3+addCube(a+1,b)


print(addCube(1,4))

def addOp(f,a,b):
    if a > b:
        return 0
    else:
        return f(a,b)
print(addOp(lambda a,b:addIt(a,b),1,4))
print(addOp(lambda a,b:addSquare(a,b),1,4))
print(addOp(lambda a,b:addCube(a,b),1,4))

结果
10
30
100
10
30
100

def addOp(f, a, b):
    if a > b:
        return 0
    else:
        return f(a, b)


f1 = lambda a, b: sum(range(a, b + 1))

f2 = lambda a, b: sum([i ** 2 for i in range(a, b + 1)])

f3 = lambda a, b: sum([i ** 3 for i in range(a, b + 1)])

print(addOp(f1, 1, 4))  # 和
print(addOp(f2, 1, 4))  # 平方
print(addOp(f3, 1, 4))  # 立方


您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632