【每天学点Python】案例四:52周存钱挑战

52周存钱挑战

V1.0初步实现

案例描述:

  • 52周存钱法,即52周阶梯式存钱法,是国际上非常流行的存钱方法。
  • 按照52周存钱法,存钱的人必须在一年52周内,每周递周10元
  • 例子:
    • 第一周存10元,第二周存20元,第三周存30元,一直到第52周存520元,这样一年下来会有多少钱呢?
    • 10+20+30+40+...+520 = 13780

上机实验:

 1 """
 2     作者:王鑫正
 3     功能:52周存钱挑战
 4     版本:1.0
 5     日期:2018年9月21日
 6 """
 7
 8
 9 def main():
10     """
11        主函数
12     """
13     money_per_week = 00     # 每周的存入的金额
14     num_week = 1            # 记录周数
15     increase_money = 10     # 递增的金额
16     total_week = 52         # 总共的周数
17     saving = 0              # 账户累计
18
19     while num_week <= total_week:
20         # 存钱操作
21         saving += money_per_week
22
23         # 输出信息
24         print(‘第{}周,存入{}元,账户累计{}元‘.format(num_week, money_per_week, saving))
25
26         # 更新下一周的存钱金额
27         money_per_week += increase_money
28         num_week += 1
29
30
31 if __name__ == ‘__main__‘:
32     main()


V2.0增加功能:记录每周的存款数

上机实验:

 1 """
 2     作者:王鑫正
 3     功能:52周存钱挑战
 4     版本:2.0
 5     日期:2018年9月21日
 6     2.0新增功能:记录每周的存款数
 7 """
 8 import math
 9
10 def main():
11     """
12        主函数
13     """
14     money_per_week = 10     # 每周的存入的金额
15     num_week = 1            # 记录周数
16     increase_money = 10     # 递增的金额
17     total_week = 52         # 总共的周数
18     saving = 0              # 账户累计
19
20     money_list = []         # 记录每周存款数的列表
21
22     while num_week <= total_week:
23         # 存钱操作
24         # saving += money_per_week
25
26         money_list.append(money_per_week)
27         saving = math.fsum(money_list)
28
29         # 输出信息
30         print(‘第{}周,存入{}元,账户累计{}元‘.format(num_week, money_per_week, saving))
31
32         # 更新下一周的存钱金额
33         money_per_week += increase_money
34         num_week += 1
35
36
37 if __name__ == ‘__main__‘:
38     main()

补充说明:

1. 列表

  • 列表(list)是有序的元素集合
  • 可通过索引访问单个元素,如l[2],l[-1]
  • 可通过区间索引访问子列表内容,如l[2:5],l[-3:]
  • 列表中每个元素类型可以不同

2. 列表操作符

操作符 含义
list1 + list2 合并(连接)两个列表
list1 * n  重复n次列表内容
len(list1)  返回列表长度(元素个数)
x in list1 检查元素是否在列表中
list.append(x) 将某个元素添加到列表的末尾
list.sort() 对列表元素排序
list1.reverse() 将列表元素逆序
list1.index(x) 返回第一次出现元素x的索引值
list1.insert(i,x) 在位置i处插入新元素x
list1.count(x) 返回元素x在列表中数量
list1.remove(x) 删除列表中第一次出现的元素x
list1.pop(i) 取出列表中i位置上的元素,并将其删除

3. math库

函数 含义
math.pi 圆周率
math.ceil(x) 对x向上取整
math.floor(x) 对x向下取整
math.pow(x,y) x的y次方
math.sqrt(x) x的平方根
math.fsum(list1) 对集合内的元素求和

V3.0增加功能:

原文地址:https://www.cnblogs.com/Kevin-WangXinzheng/p/9688649.html

时间: 2024-11-06 02:57:52

【每天学点Python】案例四:52周存钱挑战的相关文章

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

1.案例描述 按照52周存钱法,存钱人必须在一年52周内,每周递存10元.例如,第一周存10元,第二周存20元,第三周存30元,直到第52周存520元. 记录52周后能存多少钱?即10+20+30+...+520=13780 2.0增加功能:记录每周存款金额(使用list) 3.0增加功能:使用循环直接计数(for) 2.案例分析 输入:每周递存金额(10元)和挑战总周数(52周) 处理:账户累计+=每周存入金额:每周存入金额 +=每周递存金额.从第1周开始循环,到52周结束. 输出:第几周,存

【Python 21】52周存钱挑战2.0(列表和math函数)

1.案例描述 按照52周存钱法,存钱人必须在一年52周内,每周递存10元.例如,第一周存10元,第二周存20元,第三周存30元,直到第52周存520元. 记录52周后能存多少钱?即10+20+30+...+520=13780 2.0增加功能:记录每周存款金额(使用list) 2.案例分析 输入:每周递存金额(10元)和挑战总周数(52周) 处理:账户累计+=每周存入金额:每周存入金额 +=每周递存金额.从第1周开始循环,到52周结束. 输出:第几周,存入多少元,累计账户多少钱? 3.列表list

【Python 24】52周存钱挑战4.0

1.案例描述 按照52周存钱法,存钱人必须在一年52周内,每周递存10元.例如,第一周存10元,第二周存20元,第三周存30元,直到第52周存520元. 记录52周后能存多少钱?即10+20+30+...+520=13780 2.0增加功能:记录每周存款金额(使用list) 3.0增加功能:使用循环直接计数(for) 4.0增加功能:灵活设置每周存款数,增加存款数及存款周数 2.案例分析 输入:每周递存金额(10元)和挑战总周数(52周) 处理:账户累计+=每周存入金额:每周存入金额 +=每周递

怒学Python——第四篇——函数与模块

Python的函数:其实和C++非常类似,不过由于是弱类型的语言(用起来感觉是......),把那些类型声明都去掉了,传的是值不是引用(至少2.7是),有一点点小区别是前面必须加def来定义(好像宏定义的样子......),下面给出示例 def sum(a, b): #sum为函数名,注意冒号...... c = a + b #这一部分是函数的语句块 return c #到这里函数就结束了,和C++一样 print sum(1, 2) #根据函数名调用函数,输出1+2的值 这里也有lambda函

为什么偏偏是你学不好Python呢?论学习方法

首先我给大家讲下初学者学习Python的一个整体规划. 首先定位:知道如今的市场行情,需要掌握什么技能才能找到一份Python开发的工作,现在公司需要什么人才,这个就是你学习的一个方向. 系统的学习规划:你要知道自己每天学习什么,因为接触过的新手比较多,很多人学着学着就放弃,或者他们不知道自己在学习什么,这样非常迷茫一点计划没有,肯定是学不会Python的,所以学习Python要知道每天学习什么,做什么案例.创一个小群,供大家学习交流聊天如果有对学python方面有什么疑惑问题的,或者有什么想说

Python资料学习《疯狂Python讲义》+《教孩子学编程Python语言版》+《Python编程导论第2版》

适合初学者入门,适合Python就业,包含网络编程.数据分析.网络爬虫等大量企业实用的知识.建议学习<疯狂Python讲义>电子书和<教孩子学编程Python语言版>电子书,并进行配套的代码测试. <疯狂Python讲义>电子书适合初学者入门,适合Python就业,包含网络编程.数据分析.网络爬虫等大量企业实用的知识. <疯狂Python讲义>电子书第一部分系统讲解了Python的基本语法结构.Python的函数编程.Python的类和对象.模块和包.异常处

estore商城案例(四、五)------添加购物车&amp;购物车显示/生成订单&amp;在线支付

一.添加购物车 1.获得商品id提交到servlet程序 2.根据id获取product对象 3.判断seesion中是否有存在购物车session.没有的话表示  添加的第一件商品  需要先创建session:有的话直接在session里添加获得的produce(添加product 要先判断session中是否存在对应的商品,存在话直接修改商品数量,没有的话新添加这个商品). servlet程序代码: 1 public void doGet(HttpServletRequest request

运维的我要学开发--Python(4)

本文均来自Python Cookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示. #-*- coding: utf-8 -*- ''' 文件相关的操作: read() open() 两个参数: 第一个:文件路径 第二个:打开文件的模式 常用的文件打开模式: r:文本模式读取 rb:二进制模式读取 w:创建文件并文本模式 wb:创建文件,二进制模式写 rU:通用换行符的文本模式读取文件(独立

每天学点Python之collections

每天学点Python之collections collections模块在内置数据类型(dict.list.set.tuple)的基础上,提供了几个额外的数据类型:ChainMap.Counter.deque.defaultdict.namedtuple和OrderedDict等. ChainMap ChainMap是python3的新特性,它用来将多个map组成一个新的单元(原来的map结构仍然存在,类似于这些map被存在了一个list之中),这比新建一个map再将其他map用update加进