我收到了:
RecursionError:比较超出最大递归深度
在第一个定义中的for循环上。
我不知道发生了什么或我做错了什么。任何帮助将不胜感激。
我的代码:
initialbudget=3329
annualInterestRate=0.2
flat= 50
def formula(flat):
'''
input flat rate
return low or correct
'''
balance=initialbudget
for i in range(1, 13):
balance=(balance-flat)*(1+annualInterestRate/12.0)
if balance==0:
return ('correct')
elif balance>0:
return ('low')
def rateFinder(initialbudget):
'''
input starting balance
return Flat rate needed to pay off balance in 12 months
'''
flat=0
while formula(flat) != ('high'):
if formula(flat)==('correct'):
return('Lowest Payment:'+ ' ' + str(flat))
else:
flat+=10
return(rateFinder(flat))
print(rateFinder(initialbudget))
答案 0 :(得分:0)
第一个问题是rateFinder中的行flat=0
。当formula()返回('low')时,它使用更新的flat值调用rateFinder,然后将flat设置回0.因此ratefInder应如下所示:
def rateFinder(initialbudget, flat):
'''
input starting balance
return Flat rate needed to pay off balance in 12 months
'''
while formula(flat) != ('high'):
if formula(flat)==('correct'):
return('Lowest Payment:'+ ' ' + str(flat))
else:
flat+=10
return(rateFinder(initialbudget, flat))
修复了这个并将print flat, balance
放在公式()中的for循环之后,你会发现答案在300到310之间。所以你需要改进你的验收标准。
答案 1 :(得分:0)
annualInterestRate=0.2
balance=320000
ib=balance
air=annualInterestRate
flat=-10
while balance !=0:
flat+=10
month=1
balance=ib
while month<=12:
balance=(balance-flat)*(1+air/12.0)
month+=1
if balance<0:
print('Lowest Payment:',round(flat, 2))
break