Python程序设计基础教案12--for循环2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

代码示例:

相关文档
最新文档