Python 52周存钱挑战

 

主要的算法:

累加算法  

ladder_save_money  利用math库的fsum()对列表的全部内容求和


以下是全部代码:

 

 1 import math
 2 
 3 '''
 4 52周存钱挑战
 5     阶梯式存钱法,挑战人必须每周比上周多存一定数额的钱
 6     一年(52周)后,不考虑利息,计算存款
 7 '''
 8 
 9 
10 def ladder_save_money(money_per_week, increase_per_week, total_week):
11     """
12 
13     :param increase_per_week: 每周存入金额的增幅
14     :param money_per_week: 首周存入的金额
15     :param total_week: 总计存钱周数
16     :return: total_money_list 每周存款情况
17     :print 每周存款数和存款情况
18     """
19 
20     saved_money_list = []
21     total_money_list = []
22     for i in range(total_week):
23         saved_money_list.append(money_per_week)
24         #   math库内置函数,对列表内所有所有数字求和
25         #   这里不用简单的 saving = money_per_week + total_money_list[i - 1]的原因是第一周需要特殊处理,代码风格不好
26         saving = math.fsum(saved_money_list)
27         #   使用这个列表的原因是要每周输出,主函数最后也要输出一下最终存款
28         total_money_list.append(saving)
29 
30         #   输出每周存钱情况
31         print("第{}周,存入{}元,已累计存款{}元".format(i + 1, money_per_week, saving))
32         #   每周固定涨幅increase_per_week元
33         money_per_week += increase_per_week
34     return total_money_list
35 
36 
37 def main():
38     """
39     主函数
40     :return:null
41     """
42 
43     #  首周存入的金额
44     money_per_week = int(input("请输入首周存入的金额:"))
45     #   每周增幅一定金额
46     increase_per_week = int(input("请输入每周存入金额的增幅:"))
47     #   存钱周期
48     total_week = int(input("请输入总计存钱时长(周数):"))
49 
50     total_money_list = ladder_save_money(money_per_week, increase_per_week, total_week)
51     length = len(total_money_list)
52     #   format标准化输出
53     print("{}周后功能存入{}元".format(total_week, total_money_list[length - 1]))
54 
55 
56 if __name__ == '__main__':
57     main()

 

posted @ 2020-03-28 23:35  ddl是第一生产力  阅读(1071)  评论(0编辑  收藏  举报