欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python 52周存钱挑战

程序员文章站 2022-03-25 16:26:24
主要的算法: 累加算法 ladder_save_money 利用math库的fsum()对列表的全部内容求和以下是全部代码: 1 import math 2 3 ''' 4 52周存钱挑战 5 阶梯式存钱法,挑战人必须每周比上周多存一定数额的钱 6 一年(52周)后,不考虑利息,计算存款 7 ''' ......

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()