本章通过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个例子,知识点归纳如下:

完整代码查看码云

python存钱挑战_案例(4):52周存钱法相关推荐

  1. 【Python 22】52周存钱挑战2.0(列表list和math函数)

    1.案例描述 按照52周存钱法,存钱人必须在一年52周内,每周递存10元.例如,第一周存10元,第二周存20元,第三周存30元,直到第52周存520元. 记录52周后能存多少钱?即10+20+30+. ...

  2. 【Python 23】52周存钱挑战3.0(循环计数for与range)

    1.案例描述 按照52周存钱法,存钱人必须在一年52周内,每周递存10元.例如,第一周存10元,第二周存20元,第三周存30元,直到第52周存520元. 记录52周后能存多少钱?即10+20+30+. ...

  3. Python小例子—— 52周存钱挑战

    # -*- coding: utf-8 -*- """作者:宇轩亚40功能:52周存钱挑战 """ import math import d ...

  4. (四)52周存钱挑战3.0-----for循环遍历列表、range()

    for 循环 • 使用for语句可以循环遍历整个序列的内容for < x > in < list1 >:<body> • 循环变量x在每次循环时,被赋值成对应的元素 ...

  5. 2020.01.02 52周存钱

    这个 示例是一个存钱记录 本示例涉及知识点: ①while循环实现案例 ②记录每周的存款数math库 ③用循环记录,迭代函数 ④用户灵活输入值,参数传入与全局变量 ⑤根据用户输入日期判断金额 ⑥dat ...

  6. 52周存钱挑战1.0

    程序: import turtledef main():money_every_week=10zhou=1increase_money=10total_week=52saving=0while zho ...

  7. 52周存钱挑战4.0

    程序: import turtle import mathsaving=0#全局变量def save_money(money_every_week,increase_money,total_week) ...

  8. python爬虫正则表达式实例-Python爬虫(十一)_案例:使用正则表达式的爬虫

    本章将结合先前所学的爬虫和正则表达式知识,做一个简单的爬虫案例,更多内容请参考:Python学习指南 现在拥有了正则表达式这把神兵利器,我们就可以进行对爬取到的全部网页源代码进行筛选了. 打开之后,不 ...

  9. Python爬虫(十三)_案例:使用XPath的爬虫

    本篇是使用XPath的案例,更多内容请参考:Python学习指南 案例:使用XPath的爬虫 现在我们用XPath来做一个简单的爬虫,我们尝试爬取某个贴吧里的所有帖子且将该帖子里每个楼层发布的图片下载 ...

  10. python回归预测例子_案例实战 | 逻辑回归实现客户流失预测(附Python代码与源数据)...

    关注一下~,更多商业数据分析案例等你来撩 前言 利用逻辑回归进行客户流失预警建模中涵盖了许多比较细的知识点,思维导图只展示了极小的一部分,相关知识点链接将穿插在文中.(源数据源代码空降文末获取) 数据 ...

最新文章

  1. Maven 版 JPA 最佳实践(转)
  2. python内置函数调用_Python中函数的基本定义与调用及内置函数详解
  3. Kubernetes 安装
  4. [CQOI2018] 异或序列
  5. 经典C语言程序100例之二二
  6. 经典谷歌面试题-扔鸡蛋问题
  7. PATH环境变量的相关操作
  8. 不显示参数名_第51p,万能参数与返回值,Python中函数的返回值
  9. java数据类型的站位_Java 数据类型在实际开发中应用
  10. 斗地主AI算法——第六章の牌型判断
  11. SpringMVC配置任何类型转换器 Converter(以时间类型为例)
  12. JavaScript编程语言概述
  13. [技术帖] js中,双引号,引发的问题
  14. javascript高级程序设计第四版(javascript高级程序设计第四版)
  15. 数字图像处理笔记——Snakes算法、活动轮廓以及水平集(Snakes, active contours, and level sets)
  16. 车辆销售系统用例_汽车销售管理系统UML建模分析.doc
  17. 英文打字训练程序c语言,x86汇编实现英文打字练习软件
  18. ERP来龙与去脉和应用案例。
  19. Guest用户如何切换到administrator用户桌面
  20. 苹果手机怎么验证app_【图文】苹果手机如何下载安装APP

热门文章

  1. html百度地图导航起点默认定位位置,百度地图如何设置起点
  2. 傅里叶级数与傅里叶变换_Part0_欧拉公式证明+三角函数和差公式证明
  3. 支付宝转账到银行卡/隐藏部分卡号
  4. 东芝Toshiba e-STUDIO245 一体机驱动
  5. 弘辽科技:新品直通车怎么选词?怎样测试人群标签?
  6. 实操:直通车暴力打造爆款,0销量4天搜索访客800!
  7. layui多级联动下拉框的实现_layui省市县多级联动
  8. 库存转换是什么意思_安全库存的设置:库存计划的看家本领
  9. CGI的介绍及简单应用
  10. 仅需6步!虹科教你如何在第三方软件CODESYS中配置PCAN