资源简介 (共29张PPT)4.4运用循环结构描述问题求解过程高中信息技术必修1新知导入本节主要内容:1、for循环的应用。2、while循环的应用。3、循环嵌套的应用。4、循环控制的应用。新知讲解4.4.1for循环的应用新知讲解格式:for循环变量in列表:语句或语句组注意:1、for循环依次把列表中的每个元素逐个迭代出来2、冒号“:”代表下一行是循环的第一行,循环体在书写时需要缩进新知讲解for循环列表的表达方式:(1)直接罗列的方式。如:forvaluein[1,2,3,4,5]:(2)先定义后使用的方式。如:values=[1,2,3,4,5]forvalueinvalues:(3)使用range()函数,注意:①range函数从第一个值开始到第二个值止(不包括第二个值)。②可指定步长。③数值列表可以是降序。新知讲解for循环流程图执行过程:当判定条件满足时,重复执行代码段,否则结束循环,跳转出循环体。课堂练习【例】写出下列程序的输出结果。forletterin("Python"):print("当前字母:",letter)课堂练习【例】写出下列程序的输出结果。fruits=['banana','apple','mango']forfruitinfruits:print("当前水果:",fruit)print("Goodbye!")课堂练习【例】计算斐波那契数列的前30项之和。斐波那契数列:1,1,2,3,5,8,13,21,34,55,.….提示:除了前两项,后面的每一项是其前两项之和。a=b=1s=2forninrange(3,30):t=aa=bb=t+as=s+bprint(s)新知讲解4.4.2while循环的应用新知讲解格式:while(表达式):语句或语句组注意:(1)表达式一般是一个关系表达式或一个逻辑表达式,表达式的值应该是一个逻辑值真(True)或假(False)(2)每次循环都是执行完循环体语句后回到表达式处重新开始判断,重新计算表达式的值。一旦表达式的值为假就退出循环,为真时就继续执行循环体语句。(3)循环体中必须有改变条件表达式值的语句,否则将成为死循环。新知讲解执行过程:当表达式的值为真时,执行循环体语句;当表达式的值为假时,退出循环,执行循环体外的下一条语句(即while后面没有缩进的第一条语句)。上条语句表达式?循环语句下条语句NY课堂练习【例】写出下列程序的输出结果。i=1whilei<7:print(i)i+=1课堂练习【例】写出下列程序的输出结果。i=1whilei<7:print(i)i+=2PS:通过修改步长可以的到不同的结果课堂练习【例】写出下列程序的输出结果。i=1whilei<6:print(i)i+=1else:print("i已经比6大")新知讲解4.4.3循环嵌套的应用新知讲解循环嵌套的定义:在一个循环体内又包含另一个循环。嵌套可以分为多层,每一层循环在逻辑上必须是完整的。在编写程序代码时,循环嵌套的书写要采用缩进形式,内循环中的语句应该比外规律地向右缩进4列。循环嵌套的作用:解决复杂的问题。新知讲解循环嵌套的执行过程:(1)当外层循环条件为True时,则执行外层循环结构中的循环体;(2)外层循环体中包含了普通程序和内循环,当内层循环的循环条件为True时会执行此循环中的循环体,直到内层循环条件为False,跳出内循环;(3)如果此时外层循环的条件仍为True,则返回第2步,继续执行外层循环体,直到外层循环的循环条件为False;(4)当内层循环的循环条件为False,且外层循环的循环条件也为False,则整个嵌套循环才算执行完毕。课堂练习例:实现九九乘法表。方法一:for实现forrowinrange(1,10):forcolinrange(1,row+1):print('{}{}={}'.format(col,row,colrow),end='\t')print()课堂练习例:实现九九乘法表。方法二:while实现row=1whilerow<10:col=1whilecol<=row:print('{}{}={}'.format(col,row,colrow),end='\t')#见for循环的分析col+=1print()#换行row+=1#内循环结束,外循环加一课堂练习例:求所有水仙花数。水仙花数是指一个三位数,其个位、十位、百位3个数字的立方和等于这个数本身(for循环中嵌入if语句)。foriinrange(100,1000):a=i%10#个位b=int(i%100/10)#十位c=int(i/100)#百位if(aaa+bbb+ccc==i):print("水仙花数为:",i)foriinrange(1000,10000):a=i%10#个位b=int(i%100/10)#十位c=int(i/100)#百位if(aaa+bbb+ccc==i):print("水仙花数为:",i)新知讲解循环类型对比while循环在给定的判断条件为true时执行循环体,否则退出循环体。for循环重复执行语句嵌套循环在循环体中再嵌套循环循环类型对比新知讲解4.4.4循环控制的应用新知讲解循环控制的作用:循环控制包含控制循环变量的变化方式和控制循环的跳转,简单地说循环控制语句可以更改语句执行的顺序。控制语句描述break语句在语句块执行过程中终止循环,并且跳出整个循环continue语句在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。pass语句pass是空语句,是为了保持程序结构的完整性。新知讲解【例】break实例应用。forletterin'Python':ifletter=='h':breakprint('当前字母:',letter)新知讲解【例】continue实例应用。forletterin'Python':ifletter=='h':continueprint('当前字母:',letter)新知讲解【例】pass实例应用。#输出Python的每个字母forletterin'Python':ifletter=='h':passprint('这是pass块')print('当前字母:',letter)print("Goodbye!")谢谢21世纪教育网(www.21cnjy.com)中小学教育资源网站有大把高质量资料?一线教师?一线教研员?欢迎加入21世纪教育网教师合作团队!!月薪过万不是梦!!详情请看:https://www.21cnjy.com/help/help_extract.php中小学教育资源及组卷应用平台4.4运用循环结构描述问题求解过程一、选择题1、关于for循环和while循环的说法哪个正确()A、while循环先判断后执行,for循环先执行后判断。B、while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C、两种循环任何时候都不可以替换D、两种循环结构中都必须有循环体,循环体不能为空2、执行以下程序得到的结果是()i=-1?while(i<0):i=i+1?print(i)?A、-1B、0C、1D、i3、有以下程序段:sum=1foriinrange(1,5):sum=sumiprint(sum,i)程序的运行结果为()。A、245B、1205C、244D、12044、下列循环结构用法错误的是()A、foriinrange(20):B、foriinrange(0,10):C、foriinrange(10,0,2):D、whiles<50:5、若k为整型,下列while循环执行的次数为()k=1000whilek>1:print(k)k=k/2A、9B、10C、11D、1006、执行下列程序以后i的值是()foriinrange(-3,-21,-4):print(i,end="")print(end="\n")A、-3B、-4C、-19D、-217、下面的代码,哪些会输出1,2,3,三个数字()A、foriinrange(3):Print(i)0,1,2B、aList=[1,2,3]foriinaList:print(i+1)2,3,4C、i=1whilei<3:print(i)1,2i+=1D、foriinrange(3):Print(i+1)1,2,38、python中表示跳出循环的函数是()A、continueB、breakC、ESCD、close9、以下程序要求输出偶数,则在空白处的语句为()import?math?def?func(list):?????for?x?in?list:?????????if(_______):?print(x)??A、x%2==0???B、x%2????C、x?is?even????D、x/210、14.下面的语句哪个会无限循环下去()A、forainrange(10):time.sleep(10)B、while1<10:time.sleep(10)C、whileTrue:breakD、a=[3,-1,’,’]forIina[:]:ifnota:break二、编程题1、使用for循环输出1234568910。(注意:数字6和数字8之间,跳过了数字7。)2、求1-100的所有数的和。3、求1-2+3-4+5...99的所有数的和。4、模拟银行用户密码登陆(三次机会重试)。(注意:默认账号为cgc,密码123。)5、猜年龄游戏。要求:允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y,就继续让其猜3次,以此往复,如果回答N或n,就退出程序,如果猜对了,就直接退出。6、使用循环语句打印如下金字塔:。试题答案一、选择题12345678910BBCCBCDBAB解析:1、for循环执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。while循环当满足条件时进入循环,进入循环后,当条件不满足时,执行完循环体内全部语句后再跳出(而不是立即跳出循环)。2、i的初值是-1,while(i<0)当i小于0的时候执行i=i+1=0,所以选B。3、range(1,5)所以i的取值从1到4,sum=sumi表示i的累乘积,也就是1234=24,所以结果sum=24,i=4,选C。4、range(10,0,2):,步长的值要改为负值range(10,0,-2):,表示从10开始到0结束,但是不包括0,每次减少步长为2。5、当k>1的时候,程序会一直执行下去,每次将k的值减半,因为k为整型所以依次为1000,500,250,125,62,31,15,7,3,1,共计10次。6、因为for循环变量inrange(start,stop[,step]):,所以foriinrange(-3,-21,-4):表示从-3开始到-21结束(不包含-21),步长为-4,执行结果为-3-7-11-15-19,因此i的值最后为-19。7、A执行结果是0,1,2;B执行结果是2,3,4,C执行结果是1,2,D执行结果是range(3)从1开始每次i+1,所以结果是1,2,3。8、break语句功能是:在语句块执行过程中终止循环,并且跳出整个循环。9、x%2==0表示x除以2的余数是0,也就是该数为偶数。10、循环条件while1<10恒为真,所以此循环会无限循环。二、编程题解析:1、foriinrange(10):ifi==6:print('',end='')continueprint(i+1,end="")2、s=0foriinrange(101):s+=iprint(s)3、s=0print(-149+99)s=0foriinrange(100):ifi%2==0:s-=ielse:s+=iprint(s)4、km=float(input("请输入千米数:"))ifkm<=0:print("千米数输入错误,重新输入")elifkm<=3:print("您需要支付10元车费")elifkm<=10:cost=10+(km-3)1.2print("您需要支付{:.1f}元车费".format(cost))else:cost=18.4+(km-10)1.5print("您需要支付{:.1f}元车费".format(cost))5、importrandomrand=random.randint(1,18)now='y'whilenow=='y'ornow=='Y':foriinrange(3):a=int(input('请输入要猜的年龄:'))ifa==rand:print('猜对了')rand=random.randint(1,18)breakelifa:print('猜小了')elifa>rand:print('猜大了')now=input('是否继续玩y/n?')6、方法一:while循环实现current_level=1max_level=5whilecurrent_level<=max_level:print(''(max_level-current_level),end='')print(''(2current_level-1))current_level+=1方法二:for循环实现a=5foriinrange(a):print(''(a-1-i)+''(i+1)+''i)PS:自己指定金字塔的层数代码如下。a=int(input('请输入层数:'))foriinrange(a):print(''(a-1-i)+''(i+1)+''i)21世纪教育网www.21cnjy.com精品试卷·第2页(共2页)HYPERLINK"http://21世纪教育网(www.21cnjy.com)"21世纪教育网(www.21cnjy.com) 展开更多...... 收起↑ 资源列表 4.4运用循环结构描述问题求解过程.doc 4.4运用循环结构描述问题求解过程.pptx