无我

在小学尝试以Python为载体培养学生计算思维

用循环结构实现自动化求解

如果一张a4纸的厚度是0.1毫米,我们已经知道对折n次的厚度为:把0.1连续乘以n次2。

即:厚度=0.1*2**n

假如想计算并显示对折1次——103次的厚度,我们可能会想到下面的方法:

第1次:厚度=0.1*2

第2次:厚度=0.1*2**2

第3次:厚度=0.1*2**3

……

第103次:厚度=0.1*2**103

上面的程序一行一行自上向下执行,这种结构叫做顺序结构。但是103行代码实在是太啰嗦了。其实,计算机最擅长做的就是有规律的事情。对于上面的代码,我们可以用循环结构来高效的的实现,下面的程序只用了2行代码就实现了与顺序结构同样的功能。


上面的结构叫做循环结构,第二行缩进的代码叫循环体,次数是一个变化的量,变化范围决定了循环体被重复执行的次数。对于上面的循环,次数从1开始变化,每次加1,一直加到103,每一次变化都会执行一次循环体:

    第1次执行:厚度=0.1*2**1

    第2次执行:厚度=0.1*2**2

    第3次执行:厚度=0.1*2**3

    ……

    第103次执行:厚度=0.1*2**103

这样就实现了自动化计算1——103次对折的厚度。


为了显示出结果,还需要在循环体中加入一行,完整代码如下:


 运行程序会看到下面的结果:


……

……



程序虽然自动计算并显示出了103次对折的结果,但是因为是以毫米为单位,所以后面的数字特别大。当记录一个极大或极小的数字的时候,由于数字太长不方便记录,人们通常会使用一种叫做“科学计数法”的表示方法。e+30的意思是把当前数字的小数点向右移动30位才是实际的数字。


如果是一个极小的数字则会用e-来表示,意思是把小数点向左移动相应的位数才是实际数字的大小。


虽然能够看懂科学计数法了,但是随着数据的逐渐增大,一直使用毫米作为单位显然不太合适,下一篇文章将介绍如何使用分支结构,让每一次计算结果都显示为适合的单位。


评论

© 无我 | Powered by LOFTER