未来价值的修正

时间:2016-08-31 20:50:44

标签: python python-3.x

为此,您必须在计算该年度的利息之前将年度贡献添加到年初(主要总额)。

我被困住了,需要帮助。这就是我到目前为止所做的:

def main(): 

    print("Future Value Program - Version 2")
    print()
    principal = eval(input("Enter Initial Principal:"))
    contribution = eval(input("Enter Annual Contribution:"))
    apr = eval(input("Enter Annual Percentage Rate (decimal):"))
    yrs = eval(input("Enter Number of Years:"))
    for k in range (1, yrs):
        principal= principal * (1 + apr)
    print()
    print( yrs,) ": Amount $", int(principal * 100 + 0.5)/100)

main()

应该看起来像这样:

Future Value Program - Version 2 

Enter Initial Principal: 1000.00
Enter Annual Contribution: 100.00
Enter Annual Percentage Rate (decimal): 0.034
Enter Number of Years: 5 

Year 1: Amount $ 1137.4
Year 2: Amount $ 1279.47
Year 3: Amount $ 1426.37
Year 4: Amount $ 1578.27
Year 5: Amount $ 1735.33

The value in 5 years is $ 1735.33

1 个答案:

答案 0 :(得分:0)

这是一个产生预期输出的工作示例:

def main(): 
    print("Future Value Program - Version 2")
    print()
    principal = float(input("Enter Initial Principal: "))
    contribution = float(input("Enter Annual Contribution: "))
    apr = float(input("Enter Annual Percentage Rate (decimal): "))
    yrs = int(input("Enter Number of Years: "))
    print()
    for yr in range(1, yrs + 1):
        principal += contribution
        principal = int(((principal * (1 + apr)) * 100) + 0.5) / 100
        print("Year {0}: Amount $ {1}".format(yr, principal))
    print()
    print("The value in {0} years is $ {1}".format(yrs, principal))

if __name__ == '__main__':
    main()

问题中的示例存在一些问题:

  1. 第12行的print语句中出现语法错误。使用parens调用print表示所有参数都应该包含在parens中。 Python将错误的paren解释为传递给print的参数的结尾。
  2. 正如其他人所说,您不应该在输入上调用eval。调用float表示浮点数,int表示整数。
  3. range运算符有一个错误。
  4. 正如其他人所指出的那样,print在循环之外被调用,因此主要的中间状态不会被输出。
  5. 就基本数学而言,似乎省略了添加贡献。
  6. 根据预期的输出,最终print缺失。