【python】52周存钱法功能改进

该程序实现了灵活设置每周存款金额并按周累加的功能,同时允许用户输入日期查询对应周数的存款总额。程序包括存款计划的计算和日期查询两部分,支持存款金额的递增,并能输出每周期存款详情。用户可自定义初始存款、递增金额和总周数,输入日期后,程序将返回指定日期所在周的存款总额。
摘要由CSDN通过智能技术生成
  • 增加功能:灵活设置每周的存钱数,增加的存款数及存款周数
  • 增加功能:根据用户输入的日期,判断是一年中的第几周,然后输出相应的存款金额

 (1)灵活设置参数

import math
def save_money_in_n_weeks(money_per_week, increase_money, total_week):
     """
         计算n周内的存款金额
     """
     money_list = []  # 记录每周存款数的列表 
     for num_week in range(total_week):
         money_list.append(money_per_week)
         saving = math.fsum(money_list) 
         # 输出信息
         print('第{}周,存入{}元,账户累计{}元'.format(num_week + 1, money_per_week, saving)) 
         # 更新下一周的存钱金额
         money_per_week += increase_money 
     return saving 
def main():
     """
        主函数
     """
     money_per_week = float(input('请输出每周的存入的金额:'))          # 每周的存入的金额
     increase_money = float(input('请输出每周的递增金额:'))        # 递增的金额
     total_week = int(input('请输出总共的周数:'))                 # 总共的周数
 
     # # 局部变量
     # saving = 0 
     saving = save_money_in_n_weeks(money_per_week, increase_money, total_week)
     print('总的存款金额:', saving)  
if __name__ == '__main__':
     main()

运行结果: 

 (2)判断输入的日期是第几周,输出对应的存款金额

import math
import datetime
def save_money_in_n_weeks(money_per_week, increase_money, total_week):
     """
         计算n周内的存款金额
     """
     money_list = []        # 记录每周存款数的列表
     saved_money_list = []  # 记录每周的账户累计 
     for num_week in range(total_week):
         money_list.append(money_per_week)
         saving = math.fsum(money_list)
         saved_money_list.append(saving) 
         # 输出信息
         print('第{}周,存入{}元,账户累计{}元'.format(num_week + 1, money_per_week, saving)) 
         # 更新下一周的存钱金额
         money_per_week += increase_money 
     print()
 
     return saved_money_list 
def main():
     """
     主函数
     """
     money_per_week = float(input('请输出每周的存入的金额:'))          # 每周的存入的金额
     increase_money = float(input('请输出每周的递增金额:'))            # 递增的金额
     total_week = int(input('请输出总共的周数:'))                      # 总共的周数 
     saved_money_list = save_money_in_n_weeks(money_per_week, increase_money, total_week) 
     input_data_str = input('请输入日期(yyyy-mm-dd):')
     input_data = datetime.datetime.strptime(input_data_str, format('%Y-%m-%d'))  # 要解析的需要和上面输入的对应 
     week_num = input_data.isocalendar()[1]
     print('第{}周的存款:{}'.format(week_num, saved_money_list[week_num - 1]))  
if __name__ == '__main__':
     main()

运行结果: 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aigo-2021

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值