首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >初学者python对for loop+recursive循环的困难

初学者python对for loop+recursive循环的困难
EN

Stack Overflow用户
提问于 2018-06-13 00:08:11
回答 2查看 81关注 0票数 2

我正在接收:

RecursionError:在比较中超出了最大递归深度

在第一个定义中的for循环上。

我不知道发生了什么,也不知道我做错了什么。任何帮助都将不胜感激。

我的代码:

代码语言:javascript
复制
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))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-16 21:37:16

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2018-06-13 03:43:09

第一个问题是rateFinder中的flat=0行。当formula()返回('low')时,它使用更新的flat值调用rateFinder,然后将flat设置回0。所以ratefInder应该是这样的:

代码语言:javascript
复制
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之间。所以你需要改进你的验收标准。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50821560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档