资源简介 (共33张PPT)4.4 运用循环结构描述问题求解的过程必修一 《数据与计算》为什么要使用循环结构请用编程打印出1-10以内的所有偶数?思 考1-100以内的所有偶数?请打开“方法1.py”和“方法2.py”文件,运行查看效果。方法1:方法2:循环结构可大大减少语句重复,高效简洁。甚至打印更多的数……1-1000以内的所有偶数?什么是循环一年又一年的更替一周又一周的轮转一针又一针的跳动跑步计数重复地做一件事情什么是循环结构一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成;循环结构可以简化编程结构,提高代码编写的效率。在循环结构中,一些语句在某个条件成立时重复执行,直到条件不成立时,才结束重复执行。这个条件称为循环控制条件,被重复执行的语句块称为循环体。开始初始化部分循环控制条件循环体循环体以外的语句结束falsetrue1for循环的应用2while循环的应用3循环嵌套的应用4循环控制的应用目录CONTENTS1PART ONEfor循环的应用一般格式注意事项序列生成方式问题求解for循环的一般格式for 循环变量 in 序列:语句或语句组循环变量循环语句序列for i in range(2, 101, 2) :print( i )方法1:for循环的注意事项for 循环变量 in 序列:语句或语句组通过遍历序列中的元素实现循环,序列中的元素会被依次赋值给变量,然后执行一次循环体,当序列中的元素全部遍历完时,程序会自动退出循环。冒号“ : ”代表下一行是循环的第一行,循环体在书写时必须缩进。for循环所包含的循环语句以缩进为标志。缩进是否缩进 循环体示例 代码示例结果有缩进 for value in [1,2,3,4]: print(value) print('good')无缩进 for value in [1,2,3,4]: print(value) print('good')1good2good3good4good1234goodfor循环的注意事项for 循环变量 in 序列:语句或语句组通过遍历序列中的元素实现循环,序列中的元素会被依次赋值给变量,然后执行一次循环体,当序列中的元素全部遍历完时,程序会自动退出循环。冒号“ : ”代表下一行是循环的第一行,循环体在书写时必须缩进。for循环所包含的循环语句以缩进为标志。缩进序列是指有顺序地组织在一起的数据元素集合。在python中,序列有多种生成方式,如列表、range( )函数、字典、元组等。for循环中序列的生成方式列 表列表是写在方括号“[ ]”之间、用逗号隔开的元素列表。如list1=[‘good’, ‘run’,‘2022’,‘我们’]和a2= [1,2,3,4,5,6,7]列表中的数据项不需要具有相同的类型。与字符串的索引一样,列表索引从0开始。(1)直接罗列for value in [1,2,3,4]:print(value)(2)先定义、后使用values=[1,2,3,4]for value in values:print(value)运行结果1234for循环中序列的生成方式range( )函数功能:返回一个等差整数序列格式:range(起始值,终值,步长)注意:生成的整数序列不包括终值,即表示的区间为[ 起始数,结束数 ),并且起始值和步长可以缺省,缺省时分别为0和1步长可以缺省起始值和步长缺省,缺省时分别为0和1改变起始值、终值、步长来实现相应功能for n in range(1,10,1):n=1,2,3,4,5,6,7,8,9(9个数)1for n in range(1,10):n=1,2,3,4,5,6,7,8,9(9个数)2for n in range(10):n=0,1,2,3,4,5,6,7,8,9 (10个数)3for n in range(0,10,2):n=0,2,4,6,8(5个数)4for n in range(10,0,-2):n=10,8,6,4,2(5个数)5示例代码:s=0 #定义一个变量,用于计算累加和for n in range(1,101): #设置变量遍历区间为[1,101),公差为1,即1,2,3,…,99,100s=s+n #有缩进print(s) #无缩进问题求解——举例计算1+2+3+…+99+100(1~100的累加和)循环次数 n在[1,101) s s=s+n1 1 0 0+12 2 0+1 0+1+23 3 0+1+2 0+1+2+34 4 0+1+2+3 0+1+2+3+45 5 0+1+2+3+4 0+1+2+3+4+56 6 0+1+2+3+4+5 0+1+2+3+4+5+6… … … …98 8 0+1+2+3+4+5+6+…+97 0+1+2+3+4+5+6+…+9899 9 0+1+2+3+4+5+6+…+98 0+1+2+3+4+5+6+…+99100 10 0+1+2+3+4+5+6+…+99 0+1+2+3+4+5+6+…+100退出 输出s=0+1+……+100=5050问题求解——体验探究体验探究1请运用for循环语句求解10以内的所有奇数累乘的结果。请打开资源包中“探究1.py”文件,补充代码使其输出正确结果。示例代码:s = 1for i in range___________:_____________print(s)s=s*i 或 s*=i(1,10,2)问题求解——能力提升补充以下代码使其输出正确结果:for n in range(_____________):if ____________:print(n)请思考如何利用for循环语句输出100以内7的倍数。可打开资源包中“拓展1.py”文件,补充代码使其输出正确结果。参考代码见“拓展1(答案).py”文件。2PART TWOwhile循环的应用一般格式注意事项问题求解while循环的一般格式while (表达式) :语句或语句组while循环/条件循环,即当型循环,while翻译为“当……时”,只要条件满足,就不断循环;否则,跳出循环。上条语句表达式?循环语句下条语句NY循环语句表达式i=2while i<101 :print(i)i = i+2方法2:while循环的注意事项while (表达式) :语句1语句2语句3每次循环都是执行完循环体语句后回到表达式处重新开始判断,重新计算表达式的值。一旦为假就跳出循环,为真时继续执行循环体语句循环体中必须有改变条件表达式值的语句,否则将变成死循环缩进:一般是一个关系表达式或一个逻辑表达式,值为True或False问题求解——举例编写程序猜测价格,实现“猜对了”就跳出循环。问题分析让用户反复猜测价格猜对价格要结束循环需要用到循环结构循环结构是基于条件的用for语句还是while语句呢?while语句示例代码:price=5600guess=int(input("请输入你猜测的价格:"))while guess!=price:print("猜错了,加油哦!")guess=int(input("请输入你猜测的价格:"))print("猜对了,你真棒!")问题求解——举例编写程序猜测价格,实现“猜对了”就跳出循环。如果猜不对,就会无限循环,成为死循环。该如何解决呢?请打开资源包中“探究2.py”文件,补充代码使其输出正确结果。示例代码:price=5600guess=int(input("请输入你猜测的价格:"))times=1 #控制猜测次数while ___________________________:________________________print("猜错了,加油哦!")guess=int(input("请输入你猜测的价格:"))print("猜对了,你真棒!")问题求解——体验探究体验探究2请运用while循环语句实现控制次数的猜价游戏。(3次猜测机会)times=times+1 或 times+=1guess!=price and times<3×问题求解——体验探究“控制次数猜价格”示例代码:price=5600guess=int(input("请输入你猜测的价格:"))times=1while guess != price and times < 3:times = times+1print("猜错了,加油哦!")guess=int(input("请输入你猜测的价格:"))print("猜对了,你真棒!")“控制次数猜价格”示例代码(改进):price = 5600guess = int(input("请输入你猜测的价格:"))times = 1while guess != price and times < 3:times = times+1print("猜错了,加油哦!")guess = int(input("请输入你猜测的价格:"))if guess==price:print("猜对了,你真棒!")else:print("很遗憾,猜错了,游戏结束!")问题求解——能力提升补充以下代码使其输出正确结果:price = 5600guess = int(input("请输入你猜测的价格:"))times = 1while guess != price and times < 3:times = times+1_________________print("猜高了,再猜猜")______print("猜低了,再猜猜")guess = int(input("请输入你猜测的价格:"))if guess==price:print("猜对了,你真棒!")else:print("很遗憾,猜错了,游戏结束!")请思考如何利用while循环语句实现人机互动,让机器提示猜的价格偏高还是偏低。可打开资源包中“拓展2.py”文件,补充代码使其输出正确结果。参考代码见“拓展2(答案).py”文件。3PART THREE循环嵌套的应用何为嵌套如何嵌套问题求解循环语句的嵌套如果某一种循环语句中包含着自身或其他循环语句,就称为循环的“嵌套”。for循环或while循环之间可以相互嵌套。循环嵌套的执行过程是要首先执行外层循环,外循环每执行一次,内循环则需执行一个完整的循环;外层循环执行完时,整个嵌套循环才算结束。for循环通过遍历循环对象进行计数循环;while循环通过判定条件进入循环。循环嵌套的作用:解决复杂的问题。循环体内循环外循环问题求解——举例利用循环嵌套实现九九乘法表。乘法口诀表由九行九列组成,第i行的列数为其行号值,我们可以通过外层循环来打印每一行,然后通过内层循环来打印列,通过行号来控制列数。通过变量i来控制行数,通过变量j来控制列数。分析问题示例代码:for i in range(1,10):for j in range(1,i+1):print(i, "*",j, "=",i*j, "\t",end=" ")print( )外循环内循环循环体请打开资源包中“探究3.py”文件,补充代码使其输出正确结果。示例代码:for i in range (1,11):___________________print(" ", end=" ")________问题求解——体验探究体验探究3在控制台上打印一个10行10列的心形,如图所示。for j in range(1, 11):print( )问题求解——能力提升补充以下代码使其输出正确结果:for i in range(1, 11):for j in range_______:print(" ", end=" ")print()请思考如何补充空白处代码使其正确输出,效果如图所示。可打开资源包中“拓展3.py”文件,补充代码使其输出正确结果。参考代码见“拓展3.1、3.2(答案).py”文件。4PART FOUR循环控制的应用break语句continue语句问题求解break语句和continue语句continue语句break语句在循环结构中,可以用break语句跳出当前循环体,从而跳出当前循环,执行当前循环外的下一条语句。continue语句是当条件符合需要跳转的时候,跳过该次循环结束前的语句,回到循环开头的条件判断部分,重新开始执行循环。num=0for i in range(1,5):print("进入第",i, "次循环i=",i)if i==3:breaknum=num+1print("num=",num)退出本层循环num=0for i in range(1,5):print("进入第",i, "次循环i=",i)if i==3:continuenum=num+1print("num=",num)退出本次循环问题求解——体验探究请计算1到5的累加和。参考代码:sum = 0for i in range(0, 10):sum = sum + iif i == 5:_______print(sum)体验探究4请根据问题要求,补充空白处代码,认真体会break、continue语句的功能。请计算10以内的奇数和。参考代码:sum = 0for i in range(0, 10):if i % 2 == 0:_______sum = sum + iprint(sum)breakcontinue问题求解——能力提升请分别写出下面两个程序运行结果,分析程序功能。参考代码见“拓展4.1.py、 拓展4.2.py”文件。示例程序代码1:i = 100while i > 1:if i % 13 == 0:breaki=i-1print(i)示例程序代码2:for i in range(100, 1, -1):if i % 13 != 0:continueprint(i)知识总结循环嵌套循环控制while循环for循环循环结构又叫条件循环。只要条件满足,就不断循环;否则,退出循环。break→跳出本层循环;continue→跳过本次循环,回到开头。某一种循环中包含另一种循环,就称为循环的嵌套。通过遍历序列中的元素以实现循环,常搭配range函数使用。谢谢大家 展开更多...... 收起↑ 资源预览