(新教材)教科版高中信息技术必修一 2.3 周而复始的循环 课件(共20张PPT)

资源下载
  1. 二一教育资源

(新教材)教科版高中信息技术必修一 2.3 周而复始的循环 课件(共20张PPT)

资源简介

2.3周而复始的循环
学 习 目 标
循环:计算机程序中某种代码的反复执行,称为循环。(P34)
Python中的循环:
重复一定次数的计数循环
重复到某种情况结束的条件循环
问题:
计算5年储蓄存款收益
小明爸爸有5万元积蓄存入银行,考虑到在存续期间可能会有其他用途,因此他选择了1年定期,自动转存的方式。5年后他会有多少收益呢?
问题:
计算利率不变情况下到期存款总额
如果小明爸爸选择1年定期自动转存,假设5年内存款利率没有发生变化均为3.25%,5年后到期存款总额是多少?
计算5年储蓄存款收益
本金*(1+利率)存款期限
分析每年的存款变化,从中寻找规律。
第1年 存款=本金*(1+第1年利率)
第2年 存款=上一年存款*(1+第2年利率)
第3年 存款=上一年存款*(1+第3年利率)
......
第n年 存款总额=
你发现其中规律了吗?
计算利率变动情况下到期存款总额
如果小明爸爸首次存款利率是3.25%,自动转存时利率分别是3%、3%、2%、1.75%,那么5年后到期存款总额是多少?
计算5年储蓄存款收益
分析每年的存款变化,从中寻找规律。
第1年 存款=本金*(1+第1年利率)
第2年 存款=上一年存款*(1+第2年利率)
第3年 存款=上一年存款*(1+第3年利率)
......
第n年 存款总额=
每年利率都不同,
可以借助列表实现。
列表
列表在Python中作用非常强,列表可以包含多个数据元素,同时它是一个有序的集合。下面先来看一个简单的例子,熟悉列表的使用方法。
#创建列表,各元素用逗号隔开,放在方括号内
#列表可以存储混合类型的数据
object=["石榴",1,"香蕉","橙子","梨子"]
#修改列表第1个元素的值,注意列表索引号从0开始
object[0]="苹果"
del object[1] #删除列表第2个元素
#在列表尾部添加一个数据元素”弥猴桃"
object. append("猕猴桃")
print (object) #输出列表
运行结果:
['苹果','香蕉','橙子','梨子',' 猕猴桃']
列表(练习)
a=[1,2,3] #创建列表,各元素用逗号隔开,放在方括号内
#修改列表第一个元素的值为4,注意列表的索引号从0开始
#删除列表第二个元素
#在列表尾部添加一个数据元素2
print (a) #打印列表
运行结果:
[4, 3, 2]
a[0]=4
del a[1]
a.append(2)
拓展:Python中创建列表的方法
1.赋值运算符直接创建列表
用赋值运算符“=”直接将一个列表赋值给变量,
其中,listname 表示列表的名称,“element 1,element 2,"",element n”表示列表中的元素,个数没有限制,且只要是Python支持的数据类型就可以。可以将不同类型的数据放入到同一个列表中,但是通常情况下,我们不这样做,而是在一个列表中只放入一种类型的数据。这样可以提高程序的可读性。
2.创建空列表
在Python中,也可以创建空列表,如:emptylist = []
3.创建数值列表
使用list() 函数直接将range()函数循环出来的结果转换为列表。
其中,data表示可以转换为列表的数据,其类型可以是range对象、字符串、元组或其他可迭代类型的数据。
如 建一个10-20之间(不包括20)所有偶数的列表,list(range(10, 20, 2))
运行结果:
[10, 12, 14, 16, 18]
4.删除列表
对于已经创建的列表,不再使用时,可以使用del语句将其删除。
listname为要删除列表的名称。
拓展:Python中创建列表的方法
拓展知识
建立列表:list=[〃You〃, 〃are〃, 〃why〃]
增加元素在列表末尾:list.append(〃friend〃)
插入元素:list.insert(2, 〃my〃)(列表的第三个位置插入”my”)
获取元素:list[索引号],如list[0]为〃You〃。
修改元素:list[1]=〃is〃
列表排序:list.sort() (升序)
列表逆序:list.reverse()(降序)
删除元素:list.remove(〃why〃)
删除列表:del listname/del listname[-1](删除最后一个元素)
打印列表:print list
计数循环(P36)
语句格式
for i in ["hello","world"]:
print (i) # 循环体
运行结果:
hello
world
循环重复次数一定时,我们通常称为计数循环。Python中用for语句来创建这类循环。
一组重复执行的语句称为循环体。
Python对循环体约定格式是,循环体必须相对关键词for有缩进。
round()函数实现保留两位小数。
例如,round(1.428,2)的运算结果为1.43。
计数循环(P36)
range()函数,它可以生成某个范围内的数字列表。
例如: range(1,6)就会生成[1,2,3,4,5]这样一个列表,
range(8)会生[0,1,2,3,4,5,6,7]这样一个列表。
下面这个循环可以输出0到100的自然数。
for i in range(101):
print (i)
#想想为什么是101
计算利率不变情况下到期存款总额
如果小明爸爸选择1年定期自动转存,假设5年内存款利率没有发生变化均为3.25%,5年后到期存款总额是多少?
计算5年储蓄存款收益
本金*(1+利率)存款期限
1.循环体:每年到期存款总额
存款总额money=存款本金money*(1+年利率)
2.循环次数:存款年限5次。可用[1,2,3,4,5]或range(1,6)或range(5)。
3.循环变量:年。可以用year表示。
for year in [1,2,3,4,5]:
money=money*(1+rate)
效果等同于money=money*(1+rate)**5
思考:
循环体、循环次数、循环变量分别是什么?
年利率rate固定不变,输入本金money,五年后总额为:
计算利率变动情况下到期存款总额
如果小明爸爸首次存款利率是3.25%,自动转存时利率分别是3%、3%、2%、1.75%,那么5年后到期存款总额是多少?
计算5年储蓄存款收益
50000
[0.0325,0.03,0.03,0.02,0.0175]
i in rate:
money=round(money*(1+i),2)
思考:
循环体、循环次数、循环变量分别是什么?
1.循环体:每年到期存款总额
存款总额money=存款本金money*(1+年利率)
2.循环次数:存款年限5次
3.循环变量:利率。变量名i 。既能保证循环次数为5次,又能让利率rate每年变化。
多少年资金全部取出
小明爸爸购买了10万元一年期收益率3.7%的银行保证收益型理财产品。每年理财赎回后,他会提取2万元用作生活所需,余下资金仍购买此种理财。在收益率不变的情况下,多少年后本金被全部取出?
计算理财产品收益
money= round(money* (1+0.037),2)-20000
循环次数?
条件循环
条件循环一般用于循环次数未知的情况。只有当循环条件成立时,才执行循环体。在Python中,使用while语句来创建这类循环。
例如:
s=0
while S<=30:
S=S+10 #循环体
print(s) #循环体
运行结果:
10
20
30
40
例中,循环体是两条语句,因此这两条语句相对于
关键词whil均要缩进。
程序执行过程是:变量s初值为0,判断“s<=30" 是否成立:如果成立则执行循环体( s值增加10,输出s的值),
不断重复直到“s<=30”;不成立,退出循环。
形如"s=s+x"”的语句可以起到累加的作用,
如果x=1,即s=s+1可以起到计数的作用。
一般在使用累加器或计数器时将变量赋初值为0。
也有一类特殊的关系表达式,如数字0表示假,
非0数字表示真。如果循环是以“while 1:"开头,
那么在不加干预的情况下,程序就会“不知疲倦”
地一直执行下去。如果你想停止这个程序,
按快捷键Ctrl+C即可。通常情况下,
我们不会让程序陷人这种“死循环”的境地。
S=S+10
多少年资金全部取出
小明爸爸购买了10万元一年期收益率3.7%的银行保证收益型理财产品。每年理财赎回后,他会提取2万元用作生活所需,余下资金仍购买此种理财。在收益率不变的情况下,多少年后本金被全部取出?
计算理财产品收益
0
money>=0:
money=round(money*(1+0.037),2)-20000
year=year+1
思考:
循环控制条件、循环体分别是什么?是否需要计数器,若需要怎样设置?
1.循环体:
money=round(money*(1+0.037),2)-20000
year=year+1
2.循环控制条件:money>0。本金可以用常数表示,也可以存入变量增加程序的通用性。
3.需要知道年数,必须增加计数器:year=year+1
调试程序
借助Python的调试器pdb.如
程序开头加入语句“import pdb",
适当的位置放一"pdb.set-trace()" ,设置一个断点,让程序暂停运行,进入pdb调试环境。
用命令“p”查看变量,用命令“c” 继续运行,用命令“q"” 结束调试,退出程序。
在程序的第一句增加“import pdb",while循环的语句组最后一句增加"pdb.set-trace()" ,观察调试结果是否如下所示
> d:\理财.py(4)()
-> while money>=0:
(Pdb) P money,year
(83700.0,1)
(pdb) c
> d:\理财.py(4)()
-> while money>=0:
(Pdb) P money,year
(66796.9,2)
(pdb) q
周而复始的循环
总结
A
B
计数(for)循环(格式、循环次数的设置方法)
C
条件(while)循环(格式、循环控制条件的设置方法)
D
调试程序

展开更多......

收起↑

资源预览