【发布时间】:2022-01-16 22:10:00
【问题描述】:
我目前正在研究一个很容易递归的函数。但我有一个问题,我总是得到一个错误,因为该函数经常被调用。所以我必须重写这个函数,以便不使用递归。 这是带有递归的函数:
def calculate_stock(stock, stock_base_line, days):
sales_after_stock = stock - (stock_base_line/14)
if sales_after_stock > 0:
days +=1
return calculate_stock(sales_after_stock, stock_base_line, days)
else:
return days
当sales_after_stock 低于0 时,循环应该停止。
现在我尝试重写递归:
def calculate_stock(stock, stock_base_line, days):
sales_after_stock = stock - (stock_base_line/14)
while(sales_after_stock > 0):
if sales_after_stock > 0:
days +=1
sales_after_stock = sales_after_stock - (stock_base_line/14)
else:
return days
else:
return days
所以它没有正确减去sales_after_stock 的值,因此循环是无限的。我该如何解决这个问题?
【问题讨论】:
-
不应该将变量称为
stock_after_sales而不是sales_after_stock吗?
标签: python function loops recursion url-rewriting