- 增加功能:灵活设置每周的存钱数,增加的存款数及存款周数
- 增加功能:根据用户输入的日期,判断是一年中的第几周,然后输出相应的存款金额额
(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()
运行结果: