1、4.4.2 while循环的应用第 四 章授课人:XXXwhile循环的应用02while循环条件循环for循环的作用原理:基于条件只要条件满足,就不断循环;否则,就退出循环。执行过程循环语句表达式?YN注意:表达式的值为真(True)或者假(False)while循环条件循环while(表达式):语句或语句组语句格式语法注意:英文状态下冒号“:”循环体的缩进循环控制条件循环体实践(1)该流程图中,循环控制条件是什么?循环体包含了哪些语句?阅读流程图,完成以下问题开始i=3?输出“重要的事情说三遍”结束输出“输出完毕”YNi=1i=i+1实践(1)该流程图中,循环控制条件是什么?循环体包含了哪
2、些语句?阅读流程图,完成以下问题开始i=3?输出“重要的事情说三遍”结束输出“输出完毕”YNi=1i=i+1循环控制条件:i=3循环体:输出“重要的事情说三遍”i=i+1实践(2)用Python实现该流程图,代码如下:阅读流程图,完成以下问题开始i=3?输出“重要的事情说三遍”结束输出“输出完毕”YNi=1i=i+1i=1while :print(“重要的事情说三遍”)print(“输出完毕”)实践(2)用Python实现该流程图,代码如下:阅读流程图,完成以下问题开始i=3?输出“重要的事情说三遍”结束输出“输出完毕”YNi=1i=i+1i=1while :print(“重要的事情说三遍”)
3、print(“输出完毕”)i=3i=i+1实践i=1while :print(“重要的事情说三遍”)print(“输出完毕”)i=3i=i+1程序执行过程i=11=3?输出(“重要的事情说三遍”)i=2i=22=3?输出(“重要的事情说三遍”)i=3i=33=3?输出(“重要的事情说三遍”)i=4i=44=3?结束循环实践(3)如果缺失语句 i=i+1,程序的运行结果将会怎样?请上机验证:阅读流程图,完成以下问题开始i=3?输出“重要的事情说三遍”结束输出“输出完毕”YNi=1i=i+1i=1while :print(“重要的事情说三遍”)print(“输出完毕”)i=3i=i+1死循环缺少改
4、变条件表达式值的语句实践注意while循环基于条件的循环表达式(循环控制条件);循环体避免死循环(循环体中有改变条件表达式值的语句)从键盘分别输入体重、身高,请你编写程序计算BMI指数,并根据BMI指数判断属于哪一体重状态。轻体重:BMI18.5正常体重:18.5=BMI24超重:24=BMI=28实例:根据BMI指数判断体重状态4.0优化功能:可实现重复5次输入体重、身高并判断体重状态实例:根据BMI指数判断体重状态4.0w=float(input(请输入体重:)h=float(input(请输入身高:)bmi=w/h*2print(BMI指数为:,bmi)if bmi18.5:print(
5、“轻体重”)elif bmi24:print(“体重正常”)elif bmi28:print(“超重”)else:print(“肥胖”)循环条件:需要重复执行5次循环体:输入体重、身高、判断身体状态for i in range(5):修改程序:将for循环改为使用while循环实例:根据BMI指数判断体重状态4.0w=float(input(请输入体重:)h=float(input(请输入身高:)bmi=w/h*2print(BMI指数为:,bmi)if bmi18.5:print(“轻体重”)elif bmi24:print(“体重正常”)elif bmi28:print(“超重”)else
6、:print(“肥胖”)i=1while i=5:i=i+1循环条件:需要重复执行5次循环体:输入体重、身高、判断身体状态修改程序:将for循环改为使用while循环实例:根据BMI指数判断体重状态4.0实例:根据BMI指数判断体重状态5.0w=float(input(请输入体重:)h=float(input(请输入身高:)bmi=w/h*2print(BMI指数为:,bmi)if bmi18.5:print(“轻体重”)elif bmi24:print(“体重正常”)elif bmi28:print(“超重”)else:print(“肥胖”)a=int(input(请输入1或0:)while
7、 a=1:a=int(input(请输入1或0:)能力提升实现可反复执行输入体重、身高、判断体重状态(注意要避免死循环)程序对比w=float(input(请输入体重:)h=float(input(请输入身高:)bmi=w/h*2print(BMI指数为:,bmi)if bmi18.5:print(“轻体重”)elif bmi24:print(“体重正常”)elif bmi28:print(“超重”)else:print(“肥胖”)i=1while i=5:i=i+1w=float(input(请输入体重:)h=float(input(请输入身高:)bmi=w/h*2print(BMI指数为:
8、,bmi)if bmi18.5:print(“轻体重”)elif bmi24:print(“体重正常”)elif bmi=100从1加到多少的和其实也是个累加的过程,即是在循环,应该选择for循环还是while循环呢?次数不确定,选择while循环思考编写一个程序判断1加到多少的和会超过100。2.设计算法需要有一个变量从1开始变化,设该变量为i给i赋初值为1:i=0 过程中i要逐次变化:i=i+1需要有一个临时变量存储累加的结果,设该变量为sum给sum赋初值为0:sum=0过程中sum逐次与i进行加法运算:sum=sum+i思考编写一个程序判断1加到多少的和会超过100。3.编写程序i=0
9、sum=0while :sum=sum+iprint(“1加到”,i,”的和会超过100”)开始?结束输出 iYNi=0,sum=0sum=sum+ii=i+1思考编写一个程序判断1加到多少的和会超过100。3.编写程序i=0sum=0while :sum=sum+iprint(“1加到”,i,”的和会超过100”)开始sum=100?结束输出 iYNi=0,sum=0sum=sum+ii=i+1sum500需要几个变量:募捐的人数num,每次募集的费用money,每次募集后的总费用sum练习2.设计算法给num、money、sum赋初值num=1;money=20;sum=20 num、mo
10、ney、sum每次募捐后的变化num=num+1money=money+5sum=sum+money如果sum500,则返回第步输出num的值结束3.编程程序练习2.设计算法给num、money、sum赋初值num=1;money=20;sum=20 num、money、sum每次募捐后的变化num=num+1money=money+5sum=sum+money如果sum500,则返回第步输出num的值结束3.编程程序num=1money=20sum=20while sum500:num=num+1 money=money+5 sum=sum+moneyprint(num)练习4.调试运行程序
11、练习1.下列有while循环结构的说法不正确的是()A.执行过程中表达式一般是一个关系表达式或逻辑表达式 B.while循环格式一般为:while(表达式):语句或者语句组C.表达式为真执行循环体;为假退出循环 D.表达式为假执行循环体;为真退出循环DD.表达式为假执行循环体;为真退出循环练习2.下列流程图中不包含循环结构的是()。D练习3.下列Python程序段执行后,语句s=s+1执行的次数是()s=0while s4:s=s+1 print(s)A.1次 B.2次 C.3次 D.4次DD.4次练习4.输入345,输出结果正确的是()n=int(input(请输入一个整数:)s=0whil
12、e n!=0:s=s+n%10n=n/10 print(s)A.14 B.13 C.12 D.11CC.12 练习练习5.已知小周有一些压岁钱,他想通过银行储蓄增值。问:存多少年,才能达到预期的数额?储蓄规则:(1)存期以一年为单位,存款以元为单位:(2)一年期的存款利率均为3%(不考虑利率调整)。打开文件夹中的“P2.py”文件,编写正确的代码、完善该程序,实现输入本金金额p、预期数额q,输出需要储蓄年数n的功能,调试完成后保存“P2.py”文件。练习例子:输入输出样例如下:练习#注释:在注释下方编写代码实现功能:输入本金p和预期数额q,计算需要储蓄的年数nn=0#储蓄年数n置初值0p=float(input(请输入本金金额:)q=float(input(请输入预期数额:)#请在以下区域编程#以下是输出语句、不能更改print(需要储蓄(年数):,n)练习#注释:在注释下方编写代码实现功能:输入本金p和预期数额q,计算需要储蓄的年数nn=0#储蓄年数n置初值0p=float(input(请输入本金金额:)q=float(input(请输入预期数额:)#请在以下区域编程#以下是输出语句、不能更改print(需要储蓄(年数):,n)while pq:n=n+1p=p*(1+0.03)练习那就下次再聊吧第四章授课人:XXX