美文网首页
案例(4):52周存钱法

案例(4):52周存钱法

作者: hwang_zhic | 来源:发表于2019-02-14 15:20 被阅读0次

本章通过52周存钱法的5个案例来进行学习基础的Python程序

案例简述

52周存钱法,即52周阶梯式存钱法,是国际上非常流行的存钱方法。
按照52周存钱法,存钱的人必须在一年52周内,每周递存10元
例子:
第1周:10元,第2周:20元,第3周:30元·······一直到第52周:520元。
总计:10+20+30+······+520 = 13780元

v1.0

新建一个简单的Python程序,给定周数、初始存入金额、每周递增金额,通过循环计算并输出累计金额来达到上述效果
本节很简单,用到了while循环语句,具体代码如下:

    money_per_weeek = 10             # 每周存入的金额
    week = 1                         # 第几周
    increased = 10                   # 每周递增的金额
    total_week = 52                  # 总共存的周数
    saving = 0                       # 累计的金额

    while week <= total_week:
        # 存钱操作
        saving += money_per_weeek
        # 输出信息
        print("第{}周,存入{}元,累计{}元".format(week, money_per_weeek, saving))
        # 更新下周信息
        week += 1
        money_per_weeek += increased

结果如图所示:


效果图

v2.0

在v1.0的基础上,2.0增加功能:记录每周的存款数。这里使用了新的数据类型——列表,这个跟C语言的数组有点像。在列表中存储每周的存款数就可以达到记录功能。计算累计用到了math库的累加函数。
知识点:
1.列表:
(1)列表(list)是有序的元素集合
(2)可通过索引访问单个元素,如 l[2], l[-1]
(3)可通过区间索引访问子列表内容,如 l[2:5], l[-3:]
(4)列表中每个元素类型可以不同,eg:l = [1,3,’abc’]
(5)列表相关操作:


列表操作1
列表操作2
2.math库相关函数使用:
具体代码:
import math

def main():
    """
        主函数
    """
    money_per_weeek = 10         # 每周存入的金额
    week = 1                     # 第几周
    increased = 10               # 每周递增的金额
    total_week = 52              # 总共存的周数
    saving = 0                   # 累计的金额
    money_list = []              # 每周存入金额的列表

    while week <= total_week:
        # 存钱操作
        money_list.append(money_per_weeek)
        # 累计金额计算
        saving = math.fsum(money_list)
        # 输出信息
        print("第{}周,存入{}元,累计{}元".format(week, money_per_weeek, saving))
        # 更新下周信息
        week += 1
        money_per_weeek += increased
运行结果:

v3.0

在2.0的基础上,3.0增加功能:使用循环直接计数。使用的是for语句循环和range(n) 返回一个可迭代的对象函数。
知识点:

1.for循环



2.range()和list()


效果图

例子主要代码如下:

money_per_weeek = 10             # 每周存入的金额
    week = 1                         # 第几周
    increased = 10                   # 每周递增的金额
    total_week = 52                  # 总共存的周数
    saving = 0                       # 累计的金额
    money_list = []                  # 每周存入金额的列表

    for week in range(total_week):
        # 存钱操作
        money_list.append(money_per_weeek)
        # 累计金额计算
        saving = math.fsum(money_list)
        # 输出信息
        print("第{}周,存入{}元,累计{}元".format(week + 1, money_per_weeek, saving))
        # 更新下周信息
        money_per_weeek += increased

代码部分运行结果:


v4.0

在v3.0的基础上,4.0增加功能:灵活设置每周的存款数,增加的存款数及存款周数。通过用户输入input()函数设置上述变量,然后使用int()或float()将数字字符串转为整形或者浮点型变量。最后将计算的存储的过程打包成函数,让代码的结构更加清楚。
知识点:
1.函数的参数传递



2.int()和float()的使用。PS:只能含有数字,否则报错
演示效果:


主要代码:

def save_money_in_n_week(money_per_weeek, increased, total_week):
    # global saving    # 累计的金额
    saving = 0
    money_list = []  # 每周存入金额的列表
    for week in range(total_week):
        # 存钱操作
        money_list.append(money_per_weeek)
        # 累计金额计算
        saving = math.fsum(money_list)
        # 输出信息
        print("第{}周,存入{}元,累计{}元".format(week + 1, money_per_weeek, saving))
        # 更新下周信息
        money_per_weeek += increased

    return saving

def main():
    """
        主函数
    """
    money_per_weeek = float(input("请输入每周存入的金额:"))  # 每周存入的金额
    week = 1  # 第几周
    increased = float(input("请输入每周递增的金额:"))  # 每周递增的金额
    total_week = int(input("请输入总共存的周数:"))  # 总共存的周数
    saving = save_money_in_n_week(money_per_weeek, increased, total_week)
    print("总存入金额为:", saving)

执行结果:


v5.0

在v4.0的基础上,5.0新增功能:根据用户输入的日期,判断是一年中的第几周,然后输出相应的存款金额。判断时间功能通过datetime库实现,使用列表存储每周的存款金额。
知识点:
1.datetime库
(1)处理时间的标准函数库datetime

(2)datetime.now() 获取当前日期和时间

(3)字符串 -> datetime,datetime.strptime(),解析时间字符串。.format()的参数分别为年/月/日,对应用%y/%m/%d代替,参数间隔符号需要和前面格式一样。
(4)datetime -> 字符串;datetime.strftime() 格式化datetime为字符串显示
(5)isocalendar() 返回年,周数,及周几
主要代码:
def save_money_in_n_week(money_per_weeek, increased, total_week):
    # global saving      # 累计的金额
    saving = 0
    money_list = []  # 每周存入金额的列表
    save_money_list = []  # 累计金额列表
    for week in range(total_week):
        # 存钱操作
        money_list.append(money_per_weeek)
        # 累计金额计算
        saving = math.fsum(money_list)
        # 累计金额列表
        save_money_list.append(saving)
        # 输出信息
        print("第{}周,存入{}元,累计{}元".format(week + 1, money_per_weeek, saving))
        # 更新下周信息
        money_per_weeek += increased

    return save_money_list


def main():
    """
        主函数
    """
    money_per_weeek = float(input("请输入每周存入的金额:"))  # 每周存入的金额
    week = 1  # 第几周
    increased = float(input("请输入每周递增的金额:"))  # 每周递增的金额
    total_week = int(input("请输入总共存的周数:"))  # 总共存的周数

    save_money_list = save_money_in_n_week(money_per_weeek, increased, total_week)
    # print("总存入金额为:", saving)

    # 输入日期
    input_date_str = input("请输入日期(yyyy/mm/dd):")
    # 格式化日期数据
    input_data = datetime.datetime.strptime(input_date_str, "%Y/%m/%d")
    # 计算周数
    week_num = input_data.isocalendar()[1]
    # week_num = int(input("请输入需要查询的周数:"))

    print("第{}周,累计存入{}元".format(week_num, save_money_list[week_num - 1]))

执行结果:



总结

52周存钱挑战的5个例子,知识点归纳如下:


完整代码查看码云

相关文章

  • 案例(4):52周存钱法

    本章通过52周存钱法的5个案例来进行学习基础的Python程序 案例简述 52周存钱法,即52周阶梯式存钱法,是国...

  • 3种[攒钱大法],助你摆脱月光

    ​3种今年最风靡的存钱法:52周存钱法,365天存钱法,12存单法 有人说:工资就像大姨妈,盼一个月,结果几天就没...

  • 365天存钱法

    发现存钱的重要性,利用365天存钱法试试

  • 52周存钱法,一年轻松存下13780元

    52周存钱法:全名52周阶梯式存钱法,是国际上非常流行的存钱方法,存钱的人必须在一年内每周梯存10元。 方法:第一...

  • 【文魁大脑实用记忆第三期】 陈莲花 第16次作业(绘图类)

    案例一 联结绘图法: 案例二 联结绘图法: 案例三 案例四 案例五

  • 【文魁大脑实用记忆第五期】贤派婷儿第9次案例―5个

    案例一 :国旗转换 案例二:地点法 案例三:锁链法 案例四:故事法 案例五:故事+锁链 心得:1,我在用故事法记忆...

  • 从100原来是理财(35)

    #存钱的小步快跑法 存钱难,不存钱更难。 那如何小步快跑的执行存钱法则呢? 我介绍一种存钱的方法来解决你每天的困扰...

  • 阶梯存钱法

    在储蓄时,若能科学安排,合理配置,便可以使利息最大化,下面的一种储蓄方法可供学习。 阶梯存钱法,就是将一大笔钱分成...

  • 365存钱法

    大家在三百六十五天之内,每天按照天数存对应金额的钱。比如说第一天存一块,第二天两块,第三天存三块,一直到第365天...

  • 子弹存钱法

    看了很多存钱的方法,总感觉有不靠谱的地方。存钱的目的不仅在于本金,更在于利息。所以在这里提出一种存钱法,叫“子弹存...

网友评论

      本文标题:案例(4):52周存钱法

      本文链接:https://www.haomeiwen.com/subject/clrceqtx.html