安徽省颍上第一中学(236200)王 芳
Python 循环结构知识较为抽象,为了增强学生的学习体验,树立其学习信心,教师应做好课堂导入,并与学生积极互动,鼓励学生开展课堂讨论,进一步澄清学生的模糊认识,避免其走进理解的误区。同时,教师还应针对性设计课堂训练习题,帮助学生及时巩固所学知识,积累运用for循环、while循环编写程序代码的经验。
为了帮助学生巩固所学的Python 语句的顺序结构、选择结构知识,自然地引入要讲解的循环结构内容,使学生更好地把握三种结构的区别与联系,为其灵活应用Python循环结构知识奠定坚实的基础,在讲解Python 循环结构之前,教师要求学生回顾所学的顺序结构、选择结构知识。
待学生回顾所学的顺序结构、选择结构知识后,教师创设如下生活情境,引导学生思考讨论这些生活情境有哪些特点:(1)用打印机打印50 张试卷;(2)绕操场跑1000米;(3)钟表指针的转动。
学生通过思考与讨论发现,上述情境中存在着“重复”的现象。基于此,教师告知学生生活中一些具有“重复”特点的行为可使用Python 中的循环结构进行描述,并让学生知道:通过运用Python中的循环结构编写专门的程序,替代一些重复、复杂的劳动,可很好地提高人们的办事效率。由此导入新课:“Python 中的循环结构主要包括for 循环和while 循环,这些是今天我们所要学习的内容。”这样,既能消除学生对新知识的陌生感,又能使学生认识到循环结构的重要意义,有助于激发学生的学习热情。
在给学生讲解for 循环时,为了更好地吸引学生的注意力,增强学生的学习体验,教师应使用多媒体技术,围绕相关的案例、问题与学生进行积极互动,这样也可以进一步深化学生对for 循环知识的理解。
教师可利用多媒体课件给学生展示for 循环语句的一般格式。for 循环语句的一般格式并不复杂,也不难记忆,但要想深刻理解并非易事,其中,把握for 循环包含的语句、正确理解语句中缩进的含义是学生的学习难点。对此,教师可要求学生认真观察以下两段程序代码,找到它们的区别。
而后询问学生:上述程序代码的书写格式是否会对程序运行结果造成影响?你认为两段程序代码输出的结果是怎样的?让学生畅所欲言。部分学生认为没有影响,而部分学生则不知道如何回答。教师告诉学生:上述两段程序代码输出的结果是不同的。
当学生百思不得其解时,教师可利用多媒体课件为学生展示上述两段程序代码的运行结果,使学生清晰地看到:当for 下面的语句没有缩进时,程序在运行时会将下面所有内容作为循环的内容,直到遇到不缩进的代码段,便不再执行。
教师还要为学生展示for 循环的不同表现形式,如直接罗列、先定义后使用、使用range()函数,同时要求学生分析for 循环的三种表现形式的区别。学生通过观察不难发现,“直接罗列”和for循环的一般格式相同,而“先定义后使用”则需要将列表的内容赋值给一个参数,再直接引用参数。教材中的“values=[1,2,3,4,5]”就是先将列表内容赋值给参数“values”,而后使用语句“for value in values”实现对其的引用。其中使用range()函数时需要充分理解该函数中不同参数表示的含义。教师应为学生详细讲解range()函数内容。range()函数,一般包括三个参数,第一个参数是开始的参数,第二个参数是结束的参数,第三个参数是步长,表示从第一个参数到第二个参数是以何种规律实现的,默认数值是1。为了使学生更好地理解range()函数,教师为学生讲解了如下不同参数输出的结果:range(2,11,2)表示的是从2开始按照每次加2 的规律输出,但最大不能达到11,对应的输出结果为2,4,6,8,10;range(11,2,-2)表示的是从11 开始按照每次加-2 的规律输出,但最小不能达到2,对应的输出结果为11,9,7,5,3。如此,学生便能更好地理解range()函数。
for循环可通过range()函数控制循环的开始与结束,而while 循环则与之不同。while 循环需要先判断表达式是否满足一定的条件,只有满足了条件要求,即表达式的值为真时,才会执行循环内容。课堂上,教师要求学生认真阅读课本内容,把握while 循环结构的构成。其中while 循环需要结合相关的表达式使用,因此教师与学生一起回顾所学的Python 表达式,并设计相关的问题,要求学生判断表达式的结果,为其能够写出正确的while 循环语句奠定基础。具体如下:
而后教师公布上述表达式的正确结果,给学生预留一定的思考时间,让其结合自身的判断结果,总结哪些表达式结果判断错误,从而及时查漏补缺,堵住知识漏洞。另外,教师再结合具体的代码为学生分析while 循环语句的执行过程,使其认识到在编写while 循环语句时必须有改变条件表达式值的语句,避免陷入无限循环之中。
在运用for 循环、while 循环编写程序代码解决实际问题时,一些控制循环的条件往往难以控制,此时需要在代码中输入关键字用于中断循环。为了使学生掌握break语句、continue语句在中断程序循环时的区别,教师应为学生分析具体的程序代码,并通过程序代码的运行,加深学生的理解。循环程序在遇到break 语句时便会跳出循环,不再执行循环体中break语句下面的代码内容;而continue语句则表示跳过本次循环结束前的语句,继续回到循环开头部分开始新一轮的循环。
运用程序解决实际问题时往往需要同时用到for 循环和while 循环,当一个循环的循环体中套有另一个循环时,称为循环的嵌套。循环的嵌套在程序设计中有着广泛的应用,但是该部分知识较为抽象,不易理解,因此教师应注重结合具体的程序,为学生介绍循环嵌套应注意的细节,为其灵活应用循环嵌套做好铺垫。
首先,使用循环嵌套时,内外循环的循环体应严格按照各自的格式书写,不能出现交叉现象,否则程序会出错;其次,当外循环每执行一次循环时,内循环往往会完成所有的循环;最后,循环嵌套中内循环需要引用外循环的参数。
例如,以下两段程序代码均能实现打印9×9 乘法表,但是打出的9×9 乘法表的格式是完全不同的,教师可引导学生思考这两段程序代码打印出的9×9乘法表的格式是怎样的,以及为什么是这样的。
教师可为学生讲解上述两段程序代码的执行过程,加深学生对循环嵌套的认识与理解。
为了使学生更加清晰、全面地掌握两种循环结构之间的区别与联系,教师设计以下问题引导学生讨论:(1)for循环和while循环各有什么特点?(2)在编写程序时如何选择循环结构?(3)两种循环嵌套时应注意哪些问题?
通过讨论学生发现,for 循环比较适合同一类对象的循环,如数值,而且知道循环次数并且可使用range()函数控制循环的步长;while 循环是通过条件控制的循环,并不知道循环多少次。因此,在编写程序时在知道循环次数时应选择for 循环,在不知道循环次数时应选择while 循环。运用循环结构解决实际问题时往往会涉及循环的嵌套,但是循环的嵌套需要遵循一定规则,即嵌套时应保证for 循环和while循环各自代码的完整性,代码内容不能穿插。
学生完成上述两种循环结构的学习后,为了及时帮助学生巩固所学,锻炼学生学以致用的能力,教师应安排相应的习题训练。
训练习题一:使用循环结构编写程序计算1+2+3+…+100的值。
训练习题二:使用所学的循环知识编写程序,打印出如下图案。
训练习题三:分别判断以下两段程序代码的输出结果。
上述三道训练习题分别考查了循环结构、循环结构的嵌套、break语句和continue语句的区别。学生只要能够正确地编写出相关的程序代码和判断程序代码的输出结果,就表明其已经牢固掌握了上述知识。
通过Python循环结构的教学实践,笔者得到了以下启示:
Python 循环结构是高中信息技术的重点与难点内容,为了顺利地实现教学目标,教师应做好充分的教学准备。一方面,做好教学素材的收集工作,尤其是要认真制作相关的多媒体课件;另一方面,精心设计各个教学环节,包括该怎样引入新知识、设计怎样的教学问题、达到什么样的教学效果等。
在学习Python循环结构之前,学生已经掌握了一些基本的信息技术知识。在教学中,教师应凸显学生的主体地位,通过创设相关的问题情境,给学生预留空白时间,促使其积极开展自主学习活动、进行相关的思考与讨论,使学生搞清楚相关知识的来龙去脉以及区别与联系。
在教学Python循环结构时,教师不能满足于学生牢固记忆相关的理论知识,应注重引导与启发学生深入地理解程序的具体运行过程,从而编写出正确的Python 循环程序。因此,在教学中,教师应多给学生讲解具体的案例,并展示程序的实际运行结果,进一步深化学生对相关知识的理解,同时要通过与学生积极互动,使学生认识并积极纠正理解上的偏差,进一步强化学生的学习体验以及提高学生的学习信心。
在Python循环结构的教学实践中,教师应结合学生的实际情况,为学生安排相关的习题训练,及时帮助学生夯实所学知识。教师可要求学生结合对所学知识的理解,编写相关的程序,同时鼓励其在计算机上运行程序,找到程序运行中出现的错误,认真分析原因,改正错误,直到程序能够顺利运行。这样,不仅能够起到帮助学生巩固所学知识的目的,而且能够让学生积累丰富的程序编写经验。