NameError: name 'years' is not defined

NameError: name 'years' is not defined

python 编程新手,执行时我得到: print_target_output(本金、利率、年限) NameError:名称 'years' 未定义

我想做的是计算年数并打印出来

知道我该如何解决这个问题吗?

def calculate_years_to_target(principal, rate, target):   
  years = math.log(target/principal) / 4*(math.log(1 + rate/4))
  return years

def print_target_output(principal, rate, years):
  print(principal,rate,years)
  
 #MAIN
def main():  
 print_intro()
 principal,rate,target=get_target_input()
 calculate_years_to_target(principal,rate,target)
 print_target_output(principal,rate,years)

调用函数时需要将返回结果赋值给变量。如果您不这样做,它将不会存储在您的函数范围之外。

def main():  
 print_intro()
 principal,rate,target=get_target_input()

 ## Assign the returned result to a variable ##
 years = calculate_years_to_target(principal,rate,target)
 print_target_output(principal,rate,years)

为了进一步学习,花一些时间更好地理解作用域以及何时 can/cannot 访问您在代码中分配的变量可能会有好处。

RealPython

main 函数中,year 没有被赋值。 更新以下行。

years = calculate_years_to_target(principal,rate,target)