1、2.32.3周而复始的循环周而复始的循环计数循环&条件循环2.3 周而复始的循环计数循环&条件循环利滚利,财越理越多计数循环合理规划,预见美好的未来条件循环 我国的金融市场日益繁荣,人我国的金融市场日益繁荣,人们的理财意识也越来越强,作为学们的理财意识也越来越强,作为学生,也应该了解投资理财原理,养生,也应该了解投资理财原理,养成健康理财的习惯,为以后的独立成健康理财的习惯,为以后的独立生活积累知识。生活积累知识。各类金融机构推出的各项理财各类金融机构推出的各项理财产品,大都通过计息的方式产生盈产品,大都通过计息的方式产生盈利,理财收益的过程实际上蕴含着利,理财收益的过程实际上蕴含着程序设计的
2、一种基本结构程序设计的一种基本结构循环循环结构。结构。理财中的循环,循环中的理财利滚利,财越理越多计数循环合理规划,预见美好的未来条件循环 简单的事情重复做,重复的事情交给计算机做计数循环简单的事情重复做,重复的事情交给计算机做计数循环/计数循环/任务1:计算利率不变情况下的到期存款总额 将5万存入银行,选择“一年定期、自动转存”的存款方式,假设五年的存款利率均为3.25%,到期后存款总额是多少?分析每年的存款变化,发现规律:第1年 存款总额=本金*(1+3.25%)第2年 存款总额=上一年存款总额*(1+3.25%)第3年 存款总额=上一年存款总额*(1+3.25%)第4年 存款总额=上一年
3、存款总额*(1+3.25%)第5年 存款总额=上一年存款总额*(1+3.25%)总结:第5年存款总额=上一年存款总额*(1+3.25%)活动活动1 1:分析利率不变计算程序:分析利率不变计算程序1.阅读教材关于range()函数的文本,思考如果存款年限变成六年该如何修改函数?2.rate 在程序中是常量还是变量?3.循环结构的循环次数靠什么语句实现?4.程序中循环结构的循环体是什么?money=50000 money=50000#本金50000rate=0.0325 rate=0.0325#每年定期利率3.25%for i in range(5):for i in range(5):#控制循环
4、次数 money=money money=money*(1+rate)(1+rate)#计算每年的存款总额print(“5print(“5年后的存款总额:年后的存款总额:”,moneymoney,“元元”)”)#输出结果input(input(“运行完毕,请按回车键退出运行完毕,请按回车键退出”)/计数循环/分析每年的存款变化,发现规律:第1 年 存range(start,stop,step),参数可缺省,生成半开半闭区间数字列表,Start缺省为0,step缺省为1,取头不取尾。range(5)range(1,6)range(0,5,2)for 循环变量 in 语句或语句组#循环体相对于关键
5、词for有缩进 round()函数可以控制小数点后保留几位1.计数循环的格式2.range函数money=50000money=50000rate=0.0325 rate=0.0325 for i in range(5):for i in range(5):money=round(money money=round(money*(1+rate),2)(1+rate),2)#保留两位小数print(“5print(“5年后的存款总额:年后的存款总额:”,moneymoney,“元元”)”)input(input(“运行完毕,请按回车键退出运行完毕,请按回车键退出”)”)3.数据类型:列表rate
6、=0.0325,0.03,0.03,0.02,0.0175#中括号 逗号del rate1#删除列表第二个元素,标号从0开始rate.append(“0.038”)#尾部添加元素print(rate)#输出列表活动活动2 2:探究:探究rangerange函数和列表数据类型函数和列表数据类型 分析语句结果,并运行验证。r a n g e(s t a r t,s t o p ,s t e p ),参数可以不变应万变,万变不离其宗算法&数据类型循 环 结 构/计数循环/任务2:计算利率变动情况下的到期存款总额 如果存款利率每年发生变化,分别是3.25%、3%、3%、2%、1.75%,五年后的到期存
7、款总额是多少?不变:第不变:第5 5年存款总额年存款总额=上一年存款总额上一年存款总额 *(1+3.25%1+3.25%)变动:第变动:第5 5年存款总额年存款总额=上一年存款总额上一年存款总额 *(1+1+raterate)活动活动3 3:完成利率变动计算程序:完成利率变动计算程序变化的5个rate,可以用什么数据类型来存放?尝试修改任务1写好的程序。以不变应万变,万变不离其宗循环结构/计数循环/不变:第5money=50000money=50000rate=0.0325,0.03,0.03.0.02,0.0175 rate=0.0325,0.03,0.03.0.02,0.0175 for
8、i in rate:for i in rate:money=round(money money=round(money*(1+i),2)(1+i),2)print(“5print(“5年后的存款总额:年后的存款总额:”,moneymoney,“元元”)”)input(input(“运行完毕,请按回车键退出运行完毕,请按回车键退出”)”)for 循环变量 in 语句或语句组#in 后面可以是range()函数生成列表,也可以直接是列表。i 可以只控制次数也可与参与运算。m o n e y=5 0 0 0 0 f o r 循环变量 i n for i in 1,2,3,4,5,6:print(i)
9、1.1.一个空房间一个空房间 2.2.一群排队办业务的人一群排队办业务的人 3.3.业务流程业务流程总结For循环的三个要点:#有一群数字排队(列表)办业务有一群数字排队(列表)办业务#他们中间每一个被叫号(他们中间每一个被叫号(for i infor i in)就轮流到空房间(变量就轮流到空房间(变量i i)去办理业务。)去办理业务。#每个人进去后就对计算机说:每个人进去后就对计算机说:“把我把我自己打印出来自己打印出来”(printprint(i i)。)。#计算机很认真的为每个数字提供打印计算机很认真的为每个数字提供打印服务(遍历),服务(遍历),123456123456就在屏幕显示出就
10、在屏幕显示出来。来。#实际上办业务的人种类很多,除了实际上办业务的人种类很多,除了“列表列表”还可以是还可以是“字符串字符串”、“字字典典”。遍历名山,博彩方术遍历名山,博彩方术杜光庭杜光庭李筌李筌f o r i i n 列式子or列方程正向思维and逆向思维用条件限制次数条件循环列式子o r 列方程条件循环/条件循环/任务3:计算理财产品收益 10万元固定利率投资,几年后存款总额会超过11万?循环次数不定,如何实现程序?money=10 money=10#本金10万元year=0 year=0#理财年数赋初值0 while money=11:while money0:while money0
11、:money=ronud(money money=ronud(money*(1+0.037),2)-2(1+0.037),2)-2 year=year+1 year=year+1 print(year,”print(year,”年后资金全部被取出年后资金全部被取出”)”)input(“input(“运行完毕,请按回车键退出运行完毕,请按回车键退出”)”)当符合条件的时候,就一遍遍按照流程办事,有人喜欢叫它当循环。while循环?条件循环?当循环?没错,都是它!当山峰没有棱角的时候,当河水不再流,我还是不能和你分手,不能和你分手当山峰没有棱角的时候,当河水不再流,我还是不能和你分手,不能和你分手
12、总结w h i l e 循环的两个要点:m o n e y=1 0 1.放行条利滚利,财越理越多计数循环已知循环次数合理规划,预见美好的未来条件循环循环次数未知,循环条件明确利滚利,财越理越多计数循环已知循环次数合理规划,预见美好的未娃:妈,你买的这个理财产品年化率多少?妈:20%娃:巴菲特忙活一年才10%,你肯定上当了!妈:那是因为巴菲特没碰到这么好的理财产品!娃:那些人不该花钱和巴菲特吃饭,巴菲特应该和你吃饭!健康理财选对平台很重要一个关于理财的段子娃:妈,你买的这个理财产品年化率多少?一个关于理财的段子 人生比较复杂,圈里套着圈,解决复杂问题,一层循环捉襟见肘,这时候就需要循环嵌套 人生
13、比较复杂,圈里套着圈,解决复杂问题,一层循环捉襟for i in range(1,10):for j in range(1,i+1):print(j,*,i,=,j*i,end=)print()#print(“*=.format(j,i,j*i),end=)活动活动5 5:理解循环嵌套:理解循环嵌套这是一个典型的循环嵌套程序,有两个变量i和j参与循环,分析一下程序运行的结果是什么?#输出j*i=j*i的值#变量i在19之间取值#变量j在1i之间取值如果要程序逆序输出,该如何修改程序?f o r i i n r a n g e(1,1 0):#p r i n t(“循环往复周而复始冬去春来万物复苏待续精彩循环往复待续精彩