UnboundLocalError:在赋值之前引用了局部变量“currentamt”

2024-09-28 03:21:04 发布

您现在位置:Python中文网/ 问答频道 /正文

这个脚本的目标是提供在给定起始金额和年利率的情况下达到目标金额所需的年数。在

我得到错误:UnboundLocalError:赋值之前引用了局部变量“currentamt”

startamt = float(input("Starting Amount?: "))  

targetamt = float(input("Target Amount?: "))  

air = float(input("Annual Interest Rate? "))  

currentamt = 0  

year = 0  

def main():  

    currentamt = startamt * air + currentamt

    while currentamt < targetamt:  

        year = year + 1  

print('year')  

if __name__ == '__main__':  

    main()

Tags: 脚本目标inputmain情况airfloat金额
1条回答
网友
1楼 · 发布于 2024-09-28 03:21:04

除非将currentamt作为参数传入,否则主函数不知道它是什么。循环不会修改currentamt,因此它将无限循环。最后,您将打印“year”,它是一个字符串。如果你的循环正常工作,它最终会在控制台中打印“year”。相反,您需要打印year,它是包含年份的变量。参考以下解决方案。在

def main(currentamt):  
    year = 0 
    startamt = float(input("Starting Amount?: "))  
    targetamt = float(input("Target Amount?: "))  
    air = float(input("Annual Interest Rate? "))  

    while currentamt < targetamt:  
        currentamt = startamt * air + currentamt
        year = year + 1
    print(year)  

if __name__ == '__main__':  
    currentamt = 0
    main(currentamt)

相关问题 更多 >

    热门问题