繁体   English   中英

Python中的几何序列

[英]Geometric sequence in python

如何使用投资5000且每年增加新值5%的几何顺序? 我一直在尝试所有问题,但无法正确回答。 请帮忙

因此年:0 = 5000

  1. 5250
  2. 5512.5
  3. 5788.13

到目前为止的代码:

def calc_profits(principal, year):
    INTREST_GROWTH = 0.05
    for profits in range (1, year):
        y = year
        p = principal

        profits = [p * (INTREST_GROWTH ** (y - 1)) for y in range(1, y + 1)]
        print("{} {:.2f}".format(profits(year, principal))) 

问题出在您的打印对帐单中。

您有2种选择可以使其正常工作:

  1. 列表理解,创建完整的利润列表,然后将其压缩为年份

    def calc_profits(principal, year): INTREST_GROWTH = 0.05 profits = [principal * ((1+INTREST_GROWTH) ** (y - 1)) for y in range(1, year + 1)] for i,p in zip(range(year),profits): print("{0}:{1:.2f}".format(i, p))

  2. 迭代给出一个新值,并在每次循环迭代时打印出来

    def calc_profits(principal, year): INTREST_GROWTH = 0.05 profits = principal for y in range(1, year): profits = profits*(INTREST_GROWTH+1) print("{0}:{1:.2f}".format(y, profits))

您只需要计算投资的最终价值,然后取走本金,就可以得出多少利润。

def calc_profits(principal, year):
    INTEREST_GROWTH = 0.05
    end_capital = principal * (1 + INTEREST_GROWTH) ** year
    profit = end_capital - principal
    return profit

编辑:如果您想知道每年的利润,可以使用列表推导来实现。

def calc_profits(principal, year):
    INTEREST_GROWTH = 0.05
    profit = [principal * (1 + INTEREST_GROWTH) ** y - principal
               for y in range(1, year + 1)]
    return profit

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM