52周存钱挑战/52周存钱挑战(1)

去社区提问

简介:从本节课开始我们即将开启一个崭新的案例学习,这次的主题是关于存钱的有趣内容。用程序来帮你记录存钱的进度和结果。

案例描述

经过前面两个案例的学习,相信你已经掌握了Python基础语法,可以实现一些简单的功能。

今天开始,我们将进入全新的案例,一起学习更多有趣的内容吧~

你每年的新年目标里是不是也曾有过存钱计划?又是否找到过可行的存钱方法呢?

今天的课程我会为你介绍一种国际上非常流行的存钱方法:52周存钱法。

它是一种阶梯式存钱法,存钱的人必须在一年52周内,每周递存10元。举个例子来说:

第一周存10元,第二周存20元,第三周存30元,一直到第52周存入520元。这样坚持一年下来会有多少钱呢?

让我们来计算一下:

10+20+30+40+50+……+520=13780

按照这个方法坚持下来,共可以存下13780元,你是不是也感受到积少成多的力量了~

这节课就让我们一起用Python来实现52周存钱计划任务。

不光要计算存钱总额,还要把周数、每周存入的金额数和账户累计金额记录下来,得到下表中的结果。

案例分析

在这个例子中,时间每过一周都要对账户金额做一次修改,而每次的修改都是执行同样的操作,即:

当前账户金额+本周新存入的金额

经过52周后就能得到最终存钱总额。对于这样的操作过程当然要用到我们前面讲过的循环啦。

先来确定存钱过程中用到的变量,给它们赋值。程序中应该有我们所要记录的周数、每周存入的金额、账户累计金额。除此之外还需要设置每周递增的金额和计划存钱的总周数。

用简单的赋值语句就可以实现:

  1. money_per_week = 10 # 每周存入的金额
  2. i = 1 # 记录周数
  3. increase_money = 10 # 递增的金额
  4. total_week = 52 # 总共的周数
  5. saving = 0 # 账户累计

下面就要利用循环帮我们处理每周的存钱操作了。

还记得while循环的结构吗?

我们先来简单复习一下,在while循环中需要有两个重要内容,分别是循环判断条件循环体

当满足循环判断条件时,程序才能进入循环,执行循环体中语句块的代码:

在前面的赋值操作中,我们共定义了五个变量,分别是:

money_per_week 每周存入的金额(初始值为10,每周递增10)

i 周数(初始值为1,每次循环递增1)

increase_money 每周递增的金额:10

total_week 存钱总周数:52

saving 账户总金额(初始值0,每周加入存钱金额)

现在请你思考,存钱挑战的案例中,哪个变量可以做为循环的执行判断条件?

变量i代表周数,第一周时i=1,第二周时i增加1,变为i=2,以此类推。并且总存钱周数已经定义为了total_week = 52,因此:

当前的周数<=目标存钱总周数

应该进入循环。

  1. while i <= total_week:

下面再来补充循环体中进行的操作,我们需要完成两项任务:

  1. 存钱
  2. 更新下一周的存钱金额

首先要修改的就是账户累计总金额,它应该等于现在的账户总金额+本周存入金额

  1. saving = saving+money_per_week

这里有一个小小的知识点需要提到~像上面这样某个变量增加一个值后,把得到的结果重新赋值给变量本身,这样的自加操作可以采取一种更简洁的写法:

  1. saving += money_per_week

两种写法是相等价的。类似地还有自减-=,自乘*=,自除/=符号。

  1. saving = saving-money_per_week
  1. saving -= money_per_week

上面两种写法也是等价的。

账户总金额增加后,就需要更新下一周的存钱金额。

在下一个循环也就是下一周时,存入账户的金额数应该增加10,比如本周存入10元,下周就应该存入20元进账户,那么我们就需要在循环体中修改变量money_per_week的值:

  1. money_per_week += increase_money

循环是否执行下去取决于当前周数是否小于等于一开始定义的存钱总周数,因此每经过一次循环,都要把周数增加1:

  1. i += i

现在程序就已经基本完成了~

  1. money_per_week = 10 # 每周存入的金额
  2. i = 1 # 记录周数
  3. increase_money = 10 # 递增的金额
  4. total_week = 52 # 总共的周数
  5. saving = 0 # 账户累计
  6. while i <= total_week:
  7. # 存钱操作
  8. # saving = saving + money_per_week
  9. saving += money_per_week
  10. # 更新下一周的存钱金额
  11. money_per_week += increase_money
  12. i += 1

我们还希望打印每周存钱的具体情况,体现出周数、本周存入金额、账户累计金额这三项信息。

前面我们讲过字符串格式化输出的知识,可以利用它来打印出上面的内容。

{}是占位符,在字符串中为输出的信息先把位置占好,后面format()的括号中写上替换占位符的信息。下面就来书写打印功能的这行代码:

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

把这行代码加入循环体中,让程序每存钱后就打印当前这周的的存钱情况。

  1. money_per_week = 10 # 每周的存入的金额
  2. i = 1 # 记录周数
  3. increase_money = 10 # 递增的金额
  4. total_week = 52 # 总共的周数
  5. saving = 0 # 账户累计
  6. while i <= total_week:
  7. # 存钱操作
  8. # saving = saving + money_per_week
  9. saving += money_per_week
  10. # 输出信息
  11. print('第{}周,存入{}元,账户累计{}元'.format(i, money_per_week, saving))
  12. # 更新下一周的存钱金额
  13. money_per_week += increase_money
  14. i += 1

最后我们来运行代码看下效果吧~

代码练习:

编程区

  1. money_per_week = 10 # 每周的存入的金额
  2. i = 1 # 记录周数
  3. increase_money = 10 # 递增的金额
  4. total_week = 52 # 总共的周数
  5. saving = 0 # 账户累计
  6. while i <= total_week:
  7. # 存钱操作
  8. # saving = saving + money_per_week
  9. saving += money_per_week
  10. # 输出信息
  11. print('第{}周,存入{}元,账户累计{}元'.format(i, money_per_week, saving))
  12. # 更新下一周的存钱金额
  13. money_per_week += increase_money
  14. i += 1

终端区

本关总结

今天的课程我们接触了一个新的案例:52周存钱挑战。利用这个案例复习了之前学过关于while循环和字符串格式化输出的内容。还掌握了一个新的自加符号,可以让程序更加简洁。下面来做一个简单的总结吧。

1.复习while循环

2.复习字符串格式化输出

{}占位符

str.format()

3.自加符号

a+=1

a=a+1
两行代码等价

下节预告

今天我们将每周存钱的周数打印呈现,但并没有把一系列信息存储起来。下一个课时我将教你如何把存钱记录写进‘账本’~期待一下吧。

想获取课程相关资料,和更多同学一起交流学习,欢迎添加班主任微信~

扫描二维码添加班主任微信

已经添加过班主任的同学,可以直接联系对应老师,无需重复添加哦。

52周存钱挑战 1/3

52周存钱挑战(1)

1.0x

恭喜完成本课时的学习!
坚持学习

行动力超过

累计学习

学习下一课时