资源简介 (共21张PPT)3.2.4 循环结构—for语句问题导入问题1:现在有一个列表hobby = [“篮球”, “足球”, “羽毛球”, “乒乓球”, “网球"],如果要将hobby中的所有元素输出到屏幕上(一行一个元素),可通过哪种控制结构来实现?问题2:如果要将1到50之间的所有偶数都输出到屏幕上,可通过哪种控制结构来实现?循环结构具体如何实现呢?for语句格式格式1:for <变量> in <序列>:<循环体>[else:<语句块>]执行过程:for语句通过遍历序列中的元素实现循环,序列中的元素会依次被赋值给变量,然后执行一次循环体。当序列中的元素全部遍历完时,程序会自动退出循环,继续执行else子句中的语句块(else子句可选,且只有for循环完整执行else子句才执行)。循环体中的语句要向右缩进,且缩进量要一致。for循环使用示例(1)遍历列表建立循环weeklist=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]for day in weeklist:print("week:",day)(2)遍历字符串建立循环for i in "Python":print(i)列表、字符串都是序列,可以利用它们来建立循环。hobby = ["篮球", "足球","羽毛球", "乒乓球", "网球"]for d in hobby:print(d)问题1:Q1:现在有一个列表hobby = [“篮球”, “足球”, “羽毛球”, “乒乓球”, “网球"],如果要将hobby中的所有元素输出到屏幕上(一行一个元素),可通过哪种控制结构来实现?练一练1.有如下程序段:s=["tea","teacher","student","stu","master"]c=input(“请输入字符串:")n=0for ch in s:if c in ch:n += 1print(n)若输入的数据为“ter”,输出的值为 。1 练一练2.有如下程序段:s = 'Python is a popular programming language'k = c = 0for ch in s:if "a" <= ch <= "z" or "A" <= ch <= "Z":k = k + 1else:if k > 6:c = c + 1k = 0print(c)程序运行结束后,输出的值为 。2练一练3.有如下程序段:s=input("输入一串字符串:")a=max=""for c in s:if "0"<=c<="9":a=a+celse:if a>max:max=aa=""print(max)若输入的字符串为“12-8-41-23-52”,则输出的结果为 。8格式2:for <变量> in range(起始值,终值,步长值):<循环体>[else:<语句块>]Range函数由三个参数(起始值、终值、步长值)来决定序列中元素的个数和范围。如range(0,10,1),生成0-9这十个整数序列。若缺少起始值,则默认值为0;若缺少步长值(步长值是序列中的每个元素之间的差),则默认值为1。循环结束时,循环变量的值为最后一次进循环的值。for语句格式循环体中的语句要向右缩进,且缩进量要一致。若序列中的元素为有序整数,可利用函数range来实现。for num in range(2,51,2):print(num,end=" ")或:for num in range(1,51,1):if num%2==0:print(num,end=" ")问题2:Q2:如果要将1到50之间的所有偶数都输出到屏幕上,可通过哪种控制结构来实现?练一练4.有如下程序段:sum=0for i in range(10): sum+=iprint(″sum=″,sum)(1)循环变量i的初值为________,终值为________,步长为________。(2)该程序段执行后,输出结果为________。答案 (1)0 9 1 (2)45循环结束时,循环变量的值为最后一次进入循环的值,不会超出范围练一练5.有如下程序段:sum=0for i in range(10,20,3):sum+=iprint(″sum=″,sum)(1)循环变量i的初值为________,终值为________,步长为________。(2)该程序段执行后,输出结果为________。答案 (1)10 19 3 (2)58循环结束时,循环变量的值为最后一次进入循环的值,不会超出范围练一练6.有如下程序段:s=input("请输入一串字符串:")t = max = 0for i in range(len(s)):if "0"<=s[i]<="9":t = t*10+int(s[i])if t>max:max = telse:t = 0print(max)若输入的字符串为“12a3,670@84”,则输出的结果为 。670break & continuebreak和continue语句的作用是改变控制流程。当break语句在循环结构中执行时,它会立即跳出循环结构,转而执行循环结构后面的语句。break语句用来强制跳出循环。与break语句不同,当continue语句在循环结构中执行时,并不会退出循环结构,而是立即结束本次循环,重新进入下一轮循环,也就是说,跳过循环体中在continue语句之后的所有语句,继续下一轮循环。7.有如下程序段:s=0for i in range(0,20,2):s+=iif s>40:breakprint(s)(1)循环变量i的初值为________,终值为________,步长为________。(2)该程序段执行后,输出结果为________。练一练答案 (1)0 12 2 (2)42循环结束时,循环变量的值为最后一次进入循环的值,不会超出范围练一练8.有如下程序段:s=["tea","teacher","student","stu","master"]for ch in s:if "tea" in ch:continueprint(ch)程序运行后,输出 行数据,其中,第1行数据是 。答案 3 “student”break/continue语句对else子句的影响(3)没有break语句s=["tea","teacher","student","stu"]c=input("")for ch in s:print(ch)else:print("完整输出")运行对应程序,观察输出结果for循环完整执行,则else子句执行break/continue语句对else子句的影响(4)含有break语句s=["tea","teacher","student","stu"]c=input("")for ch in s:if c in ch:breakprint(ch)else:print("完整输出")运行对应程序,观察输出结果break语句不执行时,for循环完整执行,else子句执行。break语句执行时,for循环提前结束,else子句不执行。break/continue语句对else子句的影响(5)含有continue语句s=["tea","teacher","student","stu"]c=input("")for ch in s:if c in ch:continueprint(ch)else:print("完整输出")运行对应程序,观察输出结果continue语句不管是否执行,for循环均会完整执行,else子句均执行。上机练习1.水仙花数求解。一个三位正整数,若各个位上数字的立方之和等于其本身,则称这个数为水仙花数。编程求解所有的水仙花数。2.素数求解。一个正整数,若只有1和它本身两个因子,则称这个数为素数。输入一个整数,判断其是否为素数。for <变量> in <序列>:<循环体>[else:<语句块>]for <变量> in range(起始值,终值,步长值):<循环体>[else:<语句块>]总结for循环语句是通过次数来控制循环的执行过程,即循环的次数可预先计算出的。 展开更多...... 收起↑ 资源预览