我对python有点新,并一直在寻找和尝试不同的解决方案来解决这个问题。
我需要创建一个不仅在函数内倒计时而且还添加以前结果的函数。
帮助将其置于上下文中:
我有一个每周费用的公式,其中时间对应于模型中的当前时间。它看起来如下:
week1 = 5000**((Time-1))
week2 = 5000**((Time-2))
...
(其中时间旁边的数字在特定范围内增加1)
现在最终结果需要(例如)
if Time > 5:
return week1+ week2+ week3+ week4+ week5
elif Time == 5:
return week1+ week2+ week3+ week4
这将持续时间< = 1。所以我需要一个公式,其中不仅函数重复特定次数添加前一个结果,而且公式中的一个变量也会根据计数而变化。我知道必须有一个有效的方法来做一个循环,但我似乎无法搞清楚。
任何帮助都会很棒! 谢谢!
答案 0 :(得分:0)
我认为,你的公式错了,应该是:
week1 = 5000 * (Time-1)
使用简单的循环:
result = 0
for i in range(Time):
result += 5000 * (Time - i)
print result
您可以使用sum
和generator expression
在一行中实现它。
result = sum(5000 *(Time - i) for i in range(Time))
答案 1 :(得分:0)
解决此问题的一种方法是使用递归。简而言之,它是一个将继续调用自身直到满足特定条件的函数(在此示例中时间< = 1)。
这样做的缺点是它使用的内存比简单的循环多。
这方面的一个例子是:
def funcName(time):
sum = 0
if (time > 1):
sum = funcName(time-1)
sum += 5000**(time-1)
return sum