【发布时间】:2016-03-18 03:19:09
【问题描述】:
如何在python中实现一个会以如下方式sum_numbers(2)(3)(4)......(n)调用的函数?
结果应该是2+3+4+.....+n
我得到的提示是,由于函数是 python 中的对象,因此可以使用嵌套函数来执行这些操作,但我不确定。
def sum_number(x):
def sum_number_2(y):
def sum_number_3(z):
....................
def sum_number_n(n)
return n
return sum_number_n
return sum_number_3
return sum_number_2
return sum_number
但是,与其编写这么多嵌套函数,我们应该能够在以以下方式调用时在几个嵌套函数中计算 n 个值的总和 sum_numbers(2)(3)(4)......(n)
【问题讨论】:
-
sum([2,3,4,...,n])工作正常... -
sum(i for i in range(2,n+1))应该可以工作 -
@user1870400 你的请求的问题是如果
sum(x)返回一个函数,你如何得到最终的和? -
也许如果您在问题中展示您学到的知识,我们可以帮助您更好地理解。照原样,你写的不能同时返回一个函数和一个值
-
因为你的函数不知道第n次调用是为了返回最终值
标签: python functional-programming higher-order-functions