首页 > 解决方案 > 如何在python中计算到期投资的增长收益率

问题描述

我正在尝试计算到期投资的增长收益率。我的数据如下:

在此处输入图像描述

我的代码如下

a = input('principal amount\n')
principal=float(s)
a = input('prime rate\n')
prime=float(s)
a = input('number of years\n')
numberofyears=float(a)
if numberofyears <= 2:
  if principal <= 100000:
    growth = principal*prime
    print(growth)
  elif principal > 100000:
    growth = principal * (prime + (1.25 * prime))
    print(growth)
elif numberofyears <= 4:
  if principal <= 100000:
    growth = principal*(1.15*prime)
    print(growth)
  elif principal > 100000:
    growth = principal * ((1.15*prime) + (1.5 * prime))
    print(growth)
elif numberofyears > 4:
  if principal <= 100000:
    growth = principal*(1.25*prime)
    print(growth)
  elif principal > 100000:
    growth = principal * ((1.25*prime) + (2 * prime))
    print(growth)

我的代码有什么问题?因为当我放示例数据输出时没有提到。

例如:

在此处输入图像描述

我得到的输出是 33125.0

标签: pythonpython-2.7

解决方案


您的代码中有 2 个错误。首先,您的本金和您的素数被分配给 s 的浮点数,这不是输入。那么你的方程不会对 <=10e6 和 >10e6 应用不同的速率。

这是一种方法:

principal=float(input('principal amount\n'))
prime=float(input('prime rate\n') )
numberofyears=float(input('number of years\n') )
if numberofyears <= 2:
 if principal <= 100000:
   growth = principal*prime
   print(growth)
 elif principal > 100000:
   growth = 1000000* (prime) + (principal-100000)*(1.25*prime)
   print(growth)
elif numberofyears <= 4:
 if principal <= 100000:
   growth = principal*(1.15*prime)
   print(growth)
 elif principal > 100000:
   growth = 1000000*(1.15*prime) + (principal-100000)*(1.5*prime)
   print(growth)
elif numberofyears > 4:
 if principal <= 100000:
   growth = principal*(1.25*prime)
   print(growth)
 elif principal > 100000:
   growth = 1000000*(1.25*prime) + (principal-100000)*(2*prime)
   print(growth)

推荐阅读