假设我有一个求和的函数:
def sum(x=10, y=15):
return x + y
然后是for循环:
for i in range(5):
a = sum() # 25
b = sum(a) # 40
c = sum(b) # 55
d = sum(c) # 70
以上是不正确的,但希望给出第一个“ a”分配为25的想法。然后,我希望第二次迭代调用sum函数,但将第一次迭代用作sum中第一个参数的输入功能。然后在第三次迭代中,将调用具有第二次插入值的sum函数。我只是添加了字母以使示例更清楚,但这些字母实际上是指for循环的迭代。
有人知道我该如何实现这样的东西吗?
答案 0 :(得分:2)
def sum(x, y=15):
return x + y
a = 10
for i in range(5):
a = sum(a)
print("Output of "+str(i)+" iteration is : "+str(a))
print("Final output is : "+str(a))
正如您所解释的那样:
您只需要分配一个变量(即a = 10)并将其传递给函数,然后在第一个迭代函数中,将第一个参数作为10,将第二个参数15作为默认值,则返回25。在第二次迭代中,将25作为第一个参数传递,将默认参数传递为15,返回40,依此类推 ... ,此循环迭代5次,最后将得到结果。
答案 1 :(得分:0)
使用while
循环的替代方法:
def sum_(x, n, y=15):
counter = 0
while n > counter:
x += y
print(x)
counter += 1
sum_(10, 5)
通过传递另一个变量n
,可以定义循环运行的范围,直到计数器匹配为止。我已经在函数名称中添加了_
,因为通常会覆盖内置函数。