Python程序设计基础教案12--for循环2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
授课教案
授课教案附页
教学设计说明一、旧课复习
上节课主要学习了for循环语句的三种语法格式,并分别通过实际案例的介
绍来加深了对for循环的理解。
上节课程的任务3和任务4不知道大家还记得吗?
任务3:打印m到n之间的所有自然数(m和n为正整数,由用户输入)
任务4:打印m到n之间的所有奇数(m和n为正整数,由用户输入)
通过上节课的学习,相信大部分同学能够快速的完成任务3和任务4代码的
编写。那么为了检测大家是否确实掌握了for循环的基本使用规则,同时检测大家
对上周所学知识的掌握情况,接下来,要求大家完成以下任务。
任务3升级:打印m到n的所有自然数,并求和(m,n为正整数,由用户
输入)
任务分析:
(1)打印m到n的所有自然数,上节课基本所有同学已经都完成了代码的
编写,难度不大;
(2)对所有打印出的数进行求和,再学习while循环的时候已经介绍过该问
题求解的方法。需要引入一个求和变量:result。result可以理解为一个存放和值的
箱子,初值为0,因为没有任何值存放到result箱子中。在循环执行的过程中,会
依次打印一个自然数,在打印的同时将该自然数放到result箱子中,进行求和,最
终将m到n的所有自然数打印完成后,result中的值就是所有的和值。
代码示例:
任务4升级:打印m到n的所有奇数,并求和(m,n为正整数由用户输入)任务分析:
(1)打印m到n的所有奇数,循环变量初值start=m,终值stop=n+1,步长step=2;
(2)求和值:引入一个变量result,存放当前的和值。当m到n的所有奇数打印完毕后,result中的值即为最终的和值。
代码示例:
二、实践1
任务:判断m是否为素数(m为正整数,由用户输入)
任务分析:
(1)素数的定义:一个数是素数,则这个数的约数只有1和它本身。
(2)若一个数不是素数,则只有这个数存在除1和它本身之外的任意一个约数即可。即:若m不是素数,则除1和m外,至少还存在一个约数x,且x的取值范围是:[2, m-1].
(3)综合前两条,判断m是否为素数,只需依次判断[2,m-1]中是否存在m 的约数即可。显然,循环变量的初值为:start=2,终值为:stop=m-1+1=m,步长step=1.
代码示例1:
但代码示例1存在一定的bug,那就是当m的值为1或2时,或提示出错,错误提示如下:
这是因为,当m的值为1或2时,for循环条件不成立,for循环不执行,i 没有赋值。所以会提示:变量i没有定义。
为解决程序bug,需要加上m=1和m=2这两种情况。
代码示例2:
解决实践1的另一种思路:引入标志变量flag。
代码示例3:
变量flag为标志:标志是否为素数。若flag=1,则表示m是素数,否则若flag=0,表示m不是宿舍。
代码分析:
flag初值为1,默认是素数。通过for循环可以判定m是否是素数,若是,则修改flag的值为0,否则不修改flag的值。
最终根据flag的值即可判断m是否为素数,若flag=0,则m不是素数,若flag=1,则m是素数。
三、实践2
任务:打印m到n的所有素数(m和n为正整数,由用户输入,且m和n 均大于等于3)
任务分析:
(1)判断一个给定的数是否为素数,为实践1的内容,需要用到for循环;
(2)打印从m到n的所有素数,也是一个循环,循环初值start=m,终值stop=n+1;
(3)同时完成前两个条件,显然需要用到两个for循环:嵌套循环。
四、实践3
任务:打印九九乘法表
任务分析:
观察九九乘法表,乘号前面的数是从1到9(以行为单位);
在每行内部,乘号后面的数是从1开始逐渐增加,直到等于乘号前面的数。
令变量i表示乘号前面的数,则i初值start=1,终值为stop=9+1=1;
令变量j表示乘号后面的数,则j初值start=1,终值为stop=i+1
代码示例: