我正在尝试创建一个实质上是带有瓶子的回购程序的函数,规则如下
金钱->客户拥有的金钱数量
拥有的瓶子->客户必须更换的瓶子数量
价格->一瓶汽水的价格
exchangeRate->汇率,以元组表示。第一个要素是可以更换的瓶子组的最小尺寸。第二个参数是一组瓶子收到的退款。
客户可以在一次访问商店时退回任意数量的瓶子,但退还的瓶子总数必须是exchangeRate的第一个元素的倍数。
该功能必须输出客户在所有行程中可以购买的瓶子总数,直到客户用完为止。
def lightningBottle(money, bottlesOwned, price, exchangeRate):
if bottlesOwned >= exchangeRate[0]:
bottlesOwned -= exchangeRate[0]
money += exchangeRate[1]
if money >= price:
bottlesOwned += 1
bottlesbought += 1
money -= price
return lightningBottle(money, bottlesOwned, price, exchangeRate)
else:
print ("we bought",bottlesbought,"bottles")
return bottlesbought
据我所知,但是我不知道如何在不使用全局变量的情况下如何使瓶子购买计数器计时(我不能使用全局变量,因为它不会在并发测试中重置并且提供错误的答案)
You're close. You just need
bottlesbought
to be an argument of your function:您可以为它提供一个默认值,因此您无需在开始时将其指定为零(始终为零)。