友情提示:380元/半年,儿童学编程,就上码丁实验室。
这里 使用循环来现实数列的输出以及嵌套循环来实现数的分解
一直秉承的理念是工具是用来解决问题,要为了解决问题而去学习和使用工具,而不应该是为了学习工具而去学习工具,然后再去探求工具可以用来干什么。前一段时间,学习了有规律的数列,比如1、3、5、7、9或者两个有规律的数列穿插在一起,比如1、5、3、10、5、15、7、20等,还学习了把一个数差分成两个数、拆分成三个数或者更多个。因此,引导了小朋友使用Python来对这两种问题进行实现。
在数列的程序实现上,从简单的数列开始实现基础的程序,然后再基础的程序上进行修改来实现包含两个数列交叉的数列。要实现的单个数列是3、5、7、9、11,要实现的两个交叉的数列是3、5、5、10、7、15、9、20、11、25。
嵌套循环来实现数的分解要实现的是把10分解成两个数。

单个数列的实现比较简单,只需要确定好步长,使用while循环实现即可。
程序代码: i=3 while i<12: print(i) i=i+2 程序输出: 3 5 7 9 11
既然是两个数列,则需要两个变量分别和一个数列相对应。小朋友在找到规律之后最开始实现的是使用了两个while循环把两个数列分别输出。
#程序代码: i=3 j=5 while i<12: print(i) i=i+2 while j<26: print(j) j=j+5 #程序输出: 3 5 7 9 11 5 10 15 20 25
可以看出的是,这两组数列是分别输出,而不是交叉输出。引导小朋友可以把这个数列进行分组,即变成:3、5、5、10、7、15、9、20、11、25。也就是可以使用一个while循环,在这一个while循环中把i和j两个变量进行增加。
#程序代码: i=3 j=5 while i<12: print(i) print(j) i=i+2 j=j+5 #程序输出: 3 5 5 10 7 15 9 20 11 25
如果要把10分解成两个数,对于机器而言,最简单粗暴的方法就是穷举法,然后判断结果是否满足条件。既然是分解成两个数,那么就需要两个变量i和j。i和j的变化区间都是1到10,使用嵌套循环来实现,即外层循环是i,从1到10,内层循环j也是从1到10。也就是i等于1时候,j从1到10;i等于2的时候j从1到10;i等于3的时候,j从1到10;一直到i等于10的时候,j从1到10。
其实,理论上i和j不必到10,到9就可以了。但是为了编程简化处理,就直接给设置到10了,反正有判断步骤保证不会有错误的结果输出。
#程序代码: TargetNo=10 i=1 while i<TargetNo: j=1 while j<TargetNo: if i+j==TargetNo: print(i,j,i+j) j=j+1 i=i+1 #程序输出: 1 9 10 2 8 10 3 7 10 4 6 10 5 5 10 6 4 10 7 3 10 8 2 10 9 1 10
不过上面这个程序仍然有改进的空间,因为这个程序会把有的分类输出两次,比如i等于1,j等于9,与i等于9,j等于1都会各输出一次。