资源简介 (共26张PPT)六、 Python循环结构的程序实现信息技术 必修1 数据与计算算法的程序实现第三章知识过关1. for循环语句(1)for循环是一种遍历型循环,它会依次对某个序列中的全体元素进行遍历,并通过序列的元素数量来控制循环次数,遍历完所有元素后便终止循环。(2)for循环语句的语法格式如下:for <循环对象> in <序列或迭代对象>:<循环体>[else:<else 子句代码块>]其中方括号内的else子句不是必需的。在Python中,for…else表示:else子句中的语句会在循环正常执行完(即for语句不是通过break语句跳出而中断的)的情况下执行。(3)for循环用于迭代容器对象中的元素,这些对象可以是字符串、列表、字典,甚至可以是自定义类或函数。(4)for循环语句常使用内置函数len()和range() 。函数len()返回列表的长度,即元素的个数;range() 返回一个列表。2. while循环语句(1)while循环语句用于在某条件下循环执行某段程序,以处理需要重复处理的相同任务。(2)while循环语句的语法格式如下:while <条件表达式>: <循环体>[else: <else子句代码块>]其中方括号内的else子句不是必需的。while…else在循环条件为 False时执行。(3)while循环语句的循环体可以是一个单一的语句或一组具有统一缩进的语句。每次循环前要计算条件表达式的值,若其结果为True,则执行循环体;否则终止循环,并将程序控制权转移到while循环后的语句。(4)while循环语句的注意事项①适用于循环次数未知,但循环结束条件已知的情况。②编写条件表达式,并添加合适的语句以控制循环在有限步骤内结束。③确定循环体的内容,即需要重复执行的语句步骤。3. range函数(1)range函数由三个参数(起始值,终值,步长值) 来决定序列中元素的个数和范围。range函数的格式如下:range(起始值,终值,步长值) 。(2)range函数的参数必须为整数。若起始值缺省,则默认值为0。步长值是序列中的每个元素之间的差,若缺省,则默认值为1。(3)range函数示例①range(x) 等价于rang(0,x,1), 产生连续整数序列:0, 1,…,x-1。②range(x, y),产生连续整数序列:x, x+1, …, y-2, y-1。③range(x, y, z),z为步长,若z为正数,产生整数序列:x, x+z, x+2z, …, 最后一个数必须小于y;若z为负数,产生整数序列:x, x+z, x+2z,…, 最后一个数必须大于y。4. break语句和continue语句while循环在条件为 False时结束,for循环在遍历完序列后结束,如果想强行跳出本层循环,可以使用break语句。如果想提前结束本次循环,可以使用continue语句。使用这两个语句时要注意:(1)break: 结束整个循环,即不再循环,转而执行循环结构后面的语句。(2)continue: 结束本次循环,继续下一次循环。(3)break和continue只能用于循环中,不可单独使用。(4)在嵌套循环中,break和continue只会对最近的一层循环起作用,也就是就近原则。5. 嵌套循环(1)可以在循环体内嵌入其他的循环体,如可以在while循环中嵌入for循环,反之,也可以在for循环中嵌入while循环。这样的结构称为嵌套循环,也称多重循环。(2)在嵌套循环中,外层循环称为外循环,内层循环称为内循环,嵌套循环的执行过程是首先执行外循环,外循环每执行一次,内循环需要进行一轮完整的循环。在嵌套循环语法中,需要注意同层次的缩进,语法格式如下:for(while) <条件表达式1>: for(while) <条件表达式2>: <循环体2> <循环体1>注意:内循环本质上是外循环中循环体的一部分。典例精选【例1】 有如下Python程序代码:list1 = [ ] ; i = 1while i < 21: i += 1 if i%5 != 0: continue list1.append(i)print(list1)该程序段执行后,列表list1中输出的内容是( )A. [1,2,3,4]B. [1,6,11,16]C. [5,10,15,20]D. [1,2,3,4,6,7,8,9,11,12,13,14,16,17,18,19]【解析】 continue属于循环控制语句,continue语句跳出本次循环,而break语句跳出整个循环。continue语句将跳过当前循环(continue语句后面剩余语句不执行),继续进行下一轮循环。另外,continue语句也常用于for循环。C【例2】 有Python程序代码如下:x = 0for i in range(1, 9, 2) : x += iprint(x)该程序段执行后,输出变量x的值是( )A. 25 B. 36C. 16 D. 55【解析】 首先,需要注意range(1,9,2)参数的边界。由于循环变量i的取值小于9,所以变量i取值为1,3,5,7,语句x+=i的功能是累加变量i,所以循环体的功能是x=1+3+5+7,结果是16。C【例3】 有如下Python程序代码:n = int(input("计算n!,请输入n:"))print(n,end= != )fac = 1while n > 1 : fac = fac * n n -= 1print(fac)该程序段执行后,若输入变量n的值是4,则输出的内容是( )A. 4!=1 B. 4!=24C. 4!=0 D. 4!=120【解析】 本题考查while循环语句的知识。重点观察循环体及循环条件,观察循环变量n的取值情况,当输入n的值是4时,n:4,3,2,此时n>1循环条件成立。当n的值为1时结束循环。所以fac=1*4*3*2,fac的最终值为24,B正确。B【例4】 有如下Python程序代码:sum=0; sum_odd=0; sum_even=0for i in range(1,101): if i%2==0: sum_even += i else: sum_odd += i sum += iprint(sum,sum_odd,sum_even)下列选项中,输出的结果正确的是( )A. 5050 2500 2550 B. 2500 2550 5050C. 5050 2550 2500 D. 2550 5050 2500A【解析】 程序代码的功能是在区间[1..100]进行分类求和:sun=1+2+…+100,sun是区间1到100中所有整数之和5050;sum_odd=1+3+…+99,sum_odd 是区间1到100中所有奇数之和2500;sum_even=2+4+…+100,sum_even 是区间1到100中所有偶数之和2550。自我检测1. 程序代码如下:x=1while x<10∶ x=x+3 print(x,end=",")输出的结果是( )A. 4,7,10, B. 3,6,9,C. 3,6,9,12, D. 1,4,7,10,【解析】 本题主要考查Python循环结构的应用。x=1,每次递增3,循环条件是x<10,因此输出的结果是4,7,10。A2. “回文”是一种独特的修辞方式,也是一种文字游戏,如“我为人人,人人为我”等。数学中也存在这样一类具有这种特征的数,称为回文数。例如:12321为回文数。通过input()函数,输入一个三位数存储到字符串变量s中,下列语句中,不能判断是否为回文的是( )A. new=s+s[2]+s[1]+s[0]B. new=s+s[∶∶-1]C. new=s+s[-1]+s[-2]+s[-3]D. new=s+s[-1∶]D【解析】 本题主要考查Python字符串切片操作。切片操作的基本表达式:object[start_index:end_index:step],step:正数或负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。start_index:表示起始索引(包含该索引对应值),该参数省略时,表示从对象“端点”开始取值。end_index:表示终止索引(不包含该索引对应值),该参数省略时,表示一直取到数据“端点”。s[-1:]仅取到字符串s的末尾字符,因此D不能实现回文,其余选项均可以。3. 下列Python程序段实现的功能是计算表达式1-1/2+1/3-1/4+…+1/99-1/100的值:n=0;t=0;i=1while i<100∶ n=n+1/i t=t+1/(i+1) s=n-tprint(s)横线上的代码为( )A. i=i+1 B. i=i+2C. i=i+3 D. i=i+4【解析】 本题主要考查Python程序的执行与调试。分析程序,可知变量n实现1+1/3+1/5+…,变量t实现1/2+1/4+…,最后执行s=n-t得到结果,因此i每次递增2,B正确。B4. 下面的程序段,从键盘输入8,则运算结果是( )A=input()print(A*5)A. 40 B. 88888C. 8*5 D. 8.5【解析】 本题主要考查Python语句执行。A="8",A*5="88888",B正确。B5. 在Python中,下列选项中,表达式运算结果的值最大的是( )A. 20/3 B. 20%3C. 20//3 D. 20*3【解析】 本题主要考查Python表达式的运算。20/3= 6.67,20%3=2,20//3=6,20*3=60,D正确。D6. 在Python中,整数a=6,b=-4,表达式a+b>a-b or a>b的值是( )A. 1 B. FalseC. 0 D. True【解析】 本题主要考查Python表达式的运算。逻辑运算符or两边的值均为假时值才为假,否则值为真;逻辑运算符and两边的值均为真时值才为真,否则值为假;not是取反。a=6,b=-4,表达式a+b>a-b的值为False,表达式a>b的值为True,因此该表达式的值为True。D7. 在Python语言中,要把变量a定义成列表[1,3,5,7,9],下列语句中,错.误.的是( )A. a=[1,3,5,7,9]B. a=[x for x in range(1,10,2)]C. b=[1,3,5,7,9];a=bD. a=(1,3,5,7,9)【解析】 本题主要考查Python数据类型。a=(1,3,5,7,9),变量a是元组数据类型。D8. 有如下Python程序段:x = 0for i in range (1,9,2)∶ x = x + i该程序段执行后,变量x的值是( )A. 9 B. 16C. 25 D. 36【解析】 本题考查循环结构程序求值。for循环语句中的一个重要部分即步长2,随着每一次循环的执行,循环变量都要在[起始值,终值]的范围内增加或减少,直至循环结束。题中循环变量i的值在满足[1,8]范围内的分别是1;3;5;7,通过循环体“x = x + i”语句将i的值不断累加到变量x上,最后得到x的值为16,B正确。B9. 下列Python程序用于计算0和100之间所有偶数的和,程序第2行横线上应填入( )s=0for i in range(0, , ): s=s+iprint(s)A. 100 1 B. 100 2C. 101 1 D. 101 2【解析】 本题主要考查Python循环结构的应用。range(start,stop,[step]),start: 计数从 start 开始。默认是从 0 开始。例如:range(5)等价于range(0,5)。stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是[0,1,2,3,4],没有5。step:步长,默认为1。例如:range(0,5) 等价于 range(0,5,1)。该程序用于计算0和100之间所有偶数的和,因此横线上填101 2。D六、 Python循环结构的程序实现1. for循环语句(1)for循环是一种遍历型循环,它会依次对某个序列中的全体元素进行遍历,并通过序列的元素数量来控制循环次数,遍历完所有元素后便终止循环。(2)for循环语句的语法格式如下:for <循环对象> in <序列或迭代对象>:<循环体>[else:<else 子句代码块>]其中方括号内的else子句不是必需的。在Python中,for…else表示:else子句中的语句会在循环正常执行完(即for语句不是通过break语句跳出而中断的)的情况下执行。(3)for循环用于迭代容器对象中的元素,这些对象可以是字符串、列表、字典,甚至可以是自定义类或函数。(4)for循环语句常使用内置函数len()和range()。函数len()返回列表的长度,即元素的个数;range() 返回一个列表。2. while循环语句(1)while循环语句用于在某条件下循环执行某段程序,以处理需要重复处理的相同任务。(2)while循环语句的语法格式如下:while <条件表达式>: <循环体>[else: <else子句代码块>]其中方括号内的else子句不是必需的。while…else在循环条件为 False时执行。(3)while循环语句的循环体可以是一个单一的语句或一组具有统一缩进的语句。每次循环前要计算条件表达式的值,若其结果为True,则执行循环体;否则终止循环,并将程序控制权转移到while循环后的语句。(4)while循环语句的注意事项①适用于循环次数未知,但循环结束条件已知的情况。②编写条件表达式,并添加合适的语句以控制循环在有限步骤内结束。③确定循环体的内容,即需要重复执行的语句步骤。3. range函数(1)range函数由三个参数(起始值,终值,步长值)来决定序列中元素的个数和范围。range函数的格式如下:range(起始值,终值,步长值)。(2)range函数的参数必须为整数。若起始值缺省,则默认值为0。步长值是序列中的每个元素之间的差,若缺省,则默认值为1。(3)range函数示例①range(x) 等价于rang(0,x,1), 产生连续整数序列:0, 1,…,x-1。②range(x, y),产生连续整数序列:x, x+1, …, y-2, y-1。③range(x, y, z),z为步长,若z为正数,产生整数序列:x, x+z, x+2z, …,最后一个数必须小于y;若z为负数,产生整数序列:x, x+z, x+2z,…,最后一个数必须大于y。4. break语句和continue语句while循环在条件为 False时结束,for循环在遍历完序列后结束,如果想强行跳出本层循环,可以使用break语句。如果想提前结束本次循环,可以使用continue语句。使用这两个语句时要注意:(1)break: 结束整个循环,即不再循环,转而执行循环结构后面的语句。(2)continue: 结束本次循环,继续下一次循环。(3)break和continue只能用于循环中,不可单独使用。(4)在嵌套循环中,break和continue只会对最近的一层循环起作用,也就是就近原则。5. 嵌套循环(1)可以在循环体内嵌入其他的循环体,如可以在while循环中嵌入for循环,反之,也可以在for循环中嵌入while循环。这样的结构称为嵌套循环,也称多重循环。(2)在嵌套循环中,外层循环称为外循环,内层循环称为内循环,嵌套循环的执行过程是首先执行外循环,外循环每执行一次,内循环需要进行一轮完整的循环。在嵌套循环语法中,需要注意同层次的缩进,语法格式如下:for(while) <条件表达式1>: for(while) <条件表达式2>: <循环体2> <循环体1>注意:内循环本质上是外循环中循环体的一部分。【例1】 有如下Python程序代码:list1 = [] ; i = 1while i < 21: i += 1 if i%5 != 0: continue list1.append(i)print(list1)该程序段执行后,列表list1中输出的内容是( C )A. [1,2,3,4]B. [1,6,11,16]C. [5,10,15,20]D. [1,2,3,4,6,7,8,9,11,12,13,14,16,17,18,19]【解析】 continue属于循环控制语句,continue语句跳出本次循环,而break语句跳出整个循环。continue语句将跳过当前循环(continue语句后面剩余语句不执行),继续进行下一轮循环。另外,continue语句也常用于for循环。【例2】 有Python程序代码如下:x = 0for i in range(1, 9, 2) : x += iprint(x)该程序段执行后,输出变量x的值是( C )A. 25 B. 36C. 16 D. 55【解析】 首先,需要注意range(1,9,2)参数的边界。由于循环变量i的取值小于9,所以变量i取值为1,3,5,7,语句x+=i的功能是累加变量i,所以循环体的功能是x=1+3+5+7,结果是16。【例3】 有如下Python程序代码:n = int(input("计算n!,请输入n:"))print(n,end= != )fac = 1while n > 1 : fac = fac * n n -= 1print(fac)该程序段执行后,若输入变量n的值是4,则输出的内容是( B )A. 4!=1 B. 4!=24C. 4!=0 D. 4!=120【解析】 本题考查while循环语句的知识。重点观察循环体及循环条件,观察循环变量n的取值情况,当输入n的值是4时,n:4,3,2,此时n>1循环条件成立。当n的值为1时结束循环。所以fac=1*4*3*2,fac的最终值为24,B正确。【例4】 有如下Python程序代码:sum=0; sum_odd=0; sum_even=0for i in range(1,101): if i%2==0: sum_even += i else: sum_odd += i sum += iprint(sum,sum_odd,sum_even)下列选项中,输出的结果正确的是( A )A. 5050 2500 2550 B. 2500 2550 5050C. 5050 2550 2500 D. 2550 5050 2500【解析】 程序代码的功能是在区间[1..100]进行分类求和:sun=1+2+…+100,sun是区间1到100中所有整数之和5050;sum_odd=1+3+…+99,sum_odd 是区间1到100中所有奇数之和2500;sum_even=2+4+…+100,sum_even 是区间1到100中所有偶数之和2550。1. 程序代码如下:x=1while x<10∶ x=x+3 print(x,end=",")输出的结果是( A )A. 4,7,10, B. 3,6,9,C. 3,6,9,12, D. 1,4,7,10,【解析】 本题主要考查Python循环结构的应用。x=1,每次递增3,循环条件是x<10,因此输出的结果是4,7,10。2. “回文”是一种独特的修辞方式,也是一种文字游戏,如“我为人人,人人为我”等。数学中也存在这样一类具有这种特征的数,称为回文数。例如:12321为回文数。通过input()函数,输入一个三位数存储到字符串变量s中,下列语句中,不能判断是否为回文的是( D )A. new=s+s[2]+s[1]+s[0]B. new=s+s[∶∶-1]C. new=s+s[-1]+s[-2]+s[-3]D. new=s+s[-1∶]【解析】 本题主要考查Python字符串切片操作。切片操作的基本表达式:object[start_index:end_index:step],step:正数或负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。start_index:表示起始索引(包含该索引对应值),该参数省略时,表示从对象“端点”开始取值。end_index:表示终止索引(不包含该索引对应值),该参数省略时,表示一直取到数据“端点”。s[-1:]仅取到字符串s的末尾字符,因此D不能实现回文,其余选项均可以。3. 下列Python程序段实现的功能是计算表达式1-1/2+1/3-1/4+…+1/99-1/100的值:n=0;t=0;i=1while i<100∶ n=n+1/i t=t+1/(i+1) s=n-tprint(s)横线上的代码为( B )A. i=i+1 B. i=i+2C. i=i+3 D. i=i+4【解析】 本题主要考查Python程序的执行与调试。分析程序,可知变量n实现1+1/3+1/5+…,变量t实现1/2+1/4+…,最后执行s=n-t得到结果,因此i每次递增2,B正确。4. 下面的程序段,从键盘输入8,则运算结果是( B )A=input()print(A*5)A. 40 B. 88888C. 8*5 D. 8.5【解析】 本题主要考查Python语句执行。A="8",A*5="88888",B正确。5. 在Python中,下列选项中,表达式运算结果的值最大的是( D )A. 20/3 B. 20%3C. 20//3 D. 20*3【解析】 本题主要考查Python表达式的运算。20/3= 6.67,20%3=2,20//3=6,20*3=60,D正确。6. 在Python中,整数a=6,b=-4,表达式a+b>a-b or a>b的值是( D )A. 1 B. FalseC. 0 D. True【解析】 本题主要考查Python表达式的运算。逻辑运算符or两边的值均为假时值才为假,否则值为真;逻辑运算符and两边的值均为真时值才为真,否则值为假;not是取反。a=6,b=-4,表达式a+b>a-b的值为False,表达式a>b的值为True,因此该表达式的值为True。7. 在Python语言中,要把变量a定义成列表[1,3,5,7,9],下列语句中,错误的是( D )A. a=[1,3,5,7,9]B. a=[x for x in range(1,10,2)]C. b=[1,3,5,7,9];a=bD. a=(1,3,5,7,9)【解析】 本题主要考查Python数据类型。a=(1,3,5,7,9),变量a是元组数据类型。8. 有如下Python程序段:x = 0for i in range (1,9,2)∶ x = x + i该程序段执行后,变量x的值是( B )A. 9 B. 16C. 25 D. 36【解析】 本题考查循环结构程序求值。for循环语句中的一个重要部分即步长2,随着每一次循环的执行,循环变量都要在[起始值,终值]的范围内增加或减少,直至循环结束。题中循环变量i的值在满足[1,8]范围内的分别是1;3;5;7,通过循环体“x = x + i”语句将i的值不断累加到变量x上,最后得到x的值为16,B正确。9. 下列Python程序用于计算0和100之间所有偶数的和,程序第2行横线上应填入( D )s=0for i in range(0, , ): s=s+iprint(s)A. 100 1 B. 100 2C. 101 1 D. 101 2【解析】 本题主要考查Python循环结构的应用。range(start,stop,[step]),start:计数从 start 开始。默认是从 0 开始。例如:range(5)等价于range(0,5)。stop:计数到 stop 结束,但不包括 stop。例如:range(0,5) 是[0,1,2,3,4],没有5。step:步长,默认为1。例如:range(0,5) 等价于 range(0,5,1)。该程序用于计算0和100之间所有偶数的和,因此横线上填101 2。 展开更多...... 收起↑ 资源列表 六、 Python循环结构的程序实现.docx 六、 Python循环结构的程序实现.pptx