以下功能需要3个参数(f,a和b)。这里f是函数,a和b是较低的 上限分别为f,f为要求的函数。 #计算从a到b的f之和
def sum(f, a, b):
total = 0
for i in range(a, b+1):
total += f(i)
return total
问题1.输入上面的代码并计算从1到10和1到100的整数之和 1至1000
答案 0 :(得分:1)
类似的想法,但使用*=
代替+=
def product(f, a, b):
total = 1
for i in range(a, b+1):
total *= f(i)
return total
例如
def foo(x):
return x
>>> product(foo, 1, 5)
120
答案 1 :(得分:0)
正如添加0什么都不做,乘以1什么都不做。因此,只需将其作为开头:
def product(f, a, b):
total = 1
for i in range(a, b+1):
total *= f(i)
return total
答案 2 :(得分:0)
或者使用功能风格,您将获得成功:
def product(f, a, b):
return reduce(lambda x, y: x*y, [f(n) for n in range(a, b+1)])
使用函数spam
:
def spam(x):
return x
print(product(spam, 1, 3))
>>>6
<强>编辑:强>
W / o f
param看起来会是:
def product(a, b):
return reduce(lambda x, y: x*y, [n for n in range(a, b+1)])
print(product(1, 5))