终于我回来,空了几天,我又开始学习了!坚持!
52周存钱挑战,最后的一讲了。主要解决的问题是:用户随意输入时间,就可以判断是第几周,并且知道这一周需要存的钱,账户累计的存款。
主要使用的库为math、datetime。
"""
作者:lanxingbudui
功能:52周存钱挑战
版本:v5.0
日期:20190312
2.0增加功能:记录每周的存钱金额
3.0增加功能:使用循环直接计数
4.0增加功能:灵活设置每周的存钱数,增加的存钱数及存款周数
5.0增加功能:根据用户输入的日期,判断是一年中的第几周,然后给出相应的存款金额
"""
import math
import datetime
def save_money_in_n_weeks(money_per_week, increase_money, total_week):
"""
计算n周的存钱金额
"""
money_list = [] # 记录每周存款数的列表
saved_money_list = [] # 记录每周账户累计金额的列表
for i in range(total_week): # rang()函数形成从0 到total_week所有数的列表;使用for循环
money_list.append(money_per_week) # 将每周的存款数累加在后面,形成一个列表
saving = math.fsum(money_list) # 账户累计金额
saved_money_list.append(saving) # 每周账户累计金额的列表
money_per_week += increase_money
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_date_str = input('请输入时间(格式为:yyyy/mm/dd):')
input_date = datetime.datetime.strptime(input_date_str, '%Y/%m/%d')
week_num = input_date.isocalendar()[1]
print('第{}周账户累计金额:{}元'.format(week_num, saved_money_list[week_num - 1]))
if __name__ == '__main__':
main()