文章目录

  • 1.版本一
  • 2. 版本2
  • 3. 版本3
  • 4.版本4
  • 5.版本5


1.版本一

"""
作者:king
功能:52周存钱挑战
版本:1.0
时间:04.03
使用到的技术  while循环 数据结构化的输出
下一版本升级 : 数据可以全部输出,但是吧可以进行每一周的输出
"""

def main():
    """
        主函数
    """
    money_per_week = 10   ## 每周存进的金额
    i = 1                 ## 记录周数
    increase_money = 10   ## 递增金额
    total_week = 52       ## 总共的周数
    saving = 0            ## 账号累计


    while i <= total_week:
        # 存钱的操作
        #saving = saving + money_per_week
        saving += money_per_week

        # 输出信息
        print('第{}周,存入{}元,账号累计{}元'.format(i,money_per_week,saving))

        #更新下一周存钱金额
        money_per_week += increase_money
        i += 1

if __name__=='__main__':
    main()

2. 版本2

"""
作者:king
功能:52周存钱挑战
版本:2.0
时间:04.03
使用到的技术  while循环 数据结构化的输出
记录每一周的存款数
"""

import math
def main():
    """
        主函数
    """
    money_per_week = 10   ## 每周存进的金额
    i = 1                 ## 记录周数
    increase_money = 10   ## 递增金额
    total_week = 52       ## 总共的周数
    saving = 0            ## 账号累计

    money_list = []       ##记录每周的存款数

    while i <= total_week:
        # 存钱的操作
        #saving = saving + money_per_week
        #saving += money_per_week

        money_list.append(money_per_week)
        saving = math.fsum(money_list)


        # 输出信息
        print('第{}周,存入{}元,账号累计{}元'.format(i,money_per_week,saving))

        #更新下一周存钱金额
        money_per_week += increase_money
        i += 1

if __name__=='__main__':
    main()

3. 版本3

"""
作者:king
功能:52周存钱挑战
版本:3.0
时间:04.03
使用到的技术  while循环 数据结构化的输出
将while循环改造为for循环
"""

import math
def main():
    """
        主函数
    """
    money_per_week = 10   ## 每周存进的金额
    i = 1                 ## 记录周数
    increase_money = 10   ## 递增金额
    total_week = 52      ## 总共的周数
    saving = 0            ## 账号累计

    money_list = []       ##记录每周的存款数

    #while i <= total_week:

    for i in range(total_week):


        money_list.append(money_per_week)
        saving = math.fsum(money_list)


        # 输出信息
        print('第{}周,存入{}元,账号累计{}元'.format(i+1,money_per_week,saving))

        #更新下一周存钱金额
        money_per_week += increase_money


if __name__=='__main__':
    main()

4.版本4

"""
作者:king
功能:52周存钱挑战
版本:4.0
时间:04.03

4.0版本增加灵活设置每周的存款数,增加的存款以及存款周数
"""

import math

##全局变量
#saving = 0
def save_money_in_n_weeks(money_per_week,increase_money,total_week):
    """
        计算n周内的存款金额

    """


    #global saving

    money_list = []  ##记录每周的存款数

    for i in range(total_week):
        money_list.append(money_per_week)
        saving = math.fsum(money_list)

        # 输出信息
        print('第{}周,存入{}元,账号累计{}元'.format(i + 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 = save_money_in_n_weeks(money_per_week,increase_money,total_week)

    print('总的存款金额:',saving)


if __name__=='__main__':
    main()

5.版本5

"""
作者:king
功能:52周存钱挑战
版本:5.0
时间:04.03

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):
        money_list.append(money_per_week)
        saving = math.fsum(money_list)
        saved_money_list.append(saving)

        # 输出信息
        #print('第{}周,存入{}元,账号累计{}元'.format(i + 1, money_per_week, 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]

    #week_num = int(input('请输入第几周:'))
    print('第{}周的存款:{}元'.format(week_num,saved_money_list[week_num - 1]))




if __name__=='__main__':
    main()