内容正文:
周而复始的循环
2.3
1
感受循环的魅力
试一试:在屏幕上输出5遍“我爱信息技术”
print("我爱信息技术")
print("我爱信息技术")
print("我爱信息技术")
print("我爱信息技术")
print("我爱信息技术")
i = 0
for i in range(5):
print("我爱信息技术")
输出100遍呢?
2
任务一:计算5年储蓄存款收益
小王想将5万元存入银行,选择“1年定期、自动转存”的存款方式,假设5年内存款利率没有发生变化,均为3.25%,5年后到期存款总额是多少?
3
活动1:计算利率不变情况下的到期存款总额
第一年:
存款总额=50000*(1+0.0325)
第二年:
存款总额=50000*(1+0.0325)*(1+0.0325)
第三年:
存款总额=50000*(1+0.0325)*(1+0.0325)*(1+0.0325)
……
分析问题
4
任务一:计算5年储蓄存款收益
思路:
求存款总额
总结规律:存款总额= 50000*(1+利率)**存款年限
运用知识1:运算符
运用知识2:循环
5
任务一:计算5年储蓄存款收益
money = 50000
rate = 0.0325
year = 5
money = money * (1+rate) ** year
print("5年后的存款为:",money)
money = 50000
rate = 0.0325
year = 5
for i in range(year):
money = money * (1 + rate)
print("5年后的存款为:",money)
6
任务二:计算利率变动情况下的到期存款总额
小王想将5万元存入银行,选择“1年定期、自动转存”的存款方式,如果首次存款的利率是3.25%,自动转存时利率分别是3%,3%,2%,1.75%,那么5年后到期存款总额是多少?
7
活动2:计算利率变动情况下的到期存款总额
本金:50000
第一年:50000*(1+0.0325)
第二年:50000*(1+0.0325)*(1+0.03)
第三年:50000*(1+0.0325)*(1+0.03)*(1+0.03)
……
分析问题
8
活动2:计算利率变动情况下的到期存款总额
定义变量表示存款金额:money
定义变量表示存款利率:rate=[0.0325,0.03,0.03,0.02,0.0175]
那么存款总额的计算公式就是:
money*(1+rate[0])*(1+rate[1])*……(1+rate[4])
设计算法
9
知识介绍:列表
列表是一个有序集合,可以包含多个数据元素
列表创建格式:列表名 = [元素1,元素2,元素3]
列表索引号从0开始
举例:
a=[“石榴”,1, “香蕉”,”橙子”]
10
知识介绍:列表
常见的列表操作
操作 功能 基本形式
列表创建 列表名 = [元素1,元素2,元素3…]
列表取值 列表名[索引]
列表元素替换 列表名[下标] = 值
列表组合 列表3 = 列表1 + 列表2
del 删除 del 列表/列表[索引]
append 追加 list.append(元素/列表)
insert 插入 list.insert(下标值, 元素/列表)
11
知识介绍:列表
list4 = [22, 33, 12, 32, 45]
print(list4[0])
list4 = [22, 33, 12, 32, 45]
list4[0] = "hello"
print(list4[0])
list1 = [1, 2, 3]
list2 = ['hello', 'yes', 'no']
list3 = list1 + list2
print(list3)
12
知识介绍:列表
object = [“石榴”,1,”香蕉”,”橙子”,”梨子”]
object[0]=”苹果”
del object[1]
object.append(“猕猴桃”)
print(object)
list1 = [1,2,3]
list1.insert(1,0)
print(list1)
list1 = [1,2,3]
list1.insert(1,[2, 4, 8])
print(list1)
13
知识介绍:计数循环(for循环)
基本形式:
for 循环变量 in 列表:
语句或语句组
举例:
for i in[“hello”,”world”]:
print(i) #循环体
小题目:(猜猜输出结果)
l = [‘abc', 'b', 'c']
for x in l:
print(x)
A=[1,2,3,4,5]
B=[6,7,8,9,10]
for i in A:
print(i)
14
知识介绍:for + range
基本形式:
range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始。
例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。
例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。
例如:range(0, 5) 等价于 range(0, 5, 1)
题目:
1.range(10)
2.range(1, 11)
3.range(0, 30, 5)
4.range(0, 10, 3)
5.range(0, -10, -1)
6.
for i in range(101)
print(i)
A=[1,2,3,4,5]
for i in range(5):
print(A[i])
15
活动二代码
money=50000
rate=[0.0325,0.03,0.03,0.02,0.0175]
for i in rate:
money = round(money * (1+i))
print("5年以后存款总额:",money,"元")
16
任务二:计算理财产品收益
小王购买了10万元一年期收益率3.7%的银行保证收益性理财产品。每年理财赎回后,他会提取2万元用作生活所需,余下资金仍购买此种理财。在收益率不变的情况下,多少年后资金被全部取出?
17
任务二:计算理财产品收益
设计算法
循环体
循环条件
18
知识介绍:条件循环
while 关系表达式:
语句或语句组
条件循环一般用于循环次数未知的情况,只有当循环条件成立时,才执行循环体。
s=0
while s<=30:
s=s+10
print(s)
s=0
while s<=30:
s=s+10
print(s)
40
10
20
30
40
19
任务二代码
money = 100000 #本金100000
year = 0 #理财年数赋值为0
while money>0: #计算新的理财金额
money = round(money*(1+0.037),2)-20000
year = year+1 #理财年数加1
print(year,"年后资金被全部取出") #输出结果
20
循环嵌套
基本形式:
for 循环变量 in 列表:
for 循环变量in 列表:
语句或语句组
语句或语句组
for i in range(3):
print("外层循环第", i+1, "次执行")
j = 1
while j <= 2:
print("内层循环第", j, "次执行")
j += 1
21
循环语句
for与else组合使用:
for循环完整执行后才执行else后的语句。如果for循环中遇到break退出,则不执行else后的语句。
for i in [0,1]:
print(i)
else:
print(None)
continue:终止当前循环,进入下一循环
break:退出循环,执行下一命令
for i in range(5):
if i==3:
continue
print("第%d次"%i)
for i in range(5):
if i==3:
break
print("第%d次"%i)
22
$$