在for循环中使用变量作为函数的输入

时间:2019-03-20 05:56:40

标签: python

假设我有一个求和的函数:

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循环的迭代。

有人知道我该如何实现这样的东西吗?

2 个答案:

答案 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,可以定义循环运行的范围,直到计数器匹配为止。我已经在函数名称中添加了_,因为通常会覆盖内置函数。