和小家伙一起学编程 002 循环

字数 723阅读 55

人类发明制造了许多机器来代替自己做那些重复繁琐的劳动。

在编程中,循环就是做这些重复的工作的。

Scratch 循环的例子

假设有一个小机器人,它的工作很简单,就是过一会儿就说一句,我已经工作了多少秒:

无限循环

其中,“说”里面的代码块有点复杂,那是因为需要把说话的内容:"我已经工作了"、工作的时间(单位是秒,还要四舍五入取整,要怎么和小朋友解释四舍五入呢……)、“秒!”这三部分逐步连接起来成为一句完整的话。

我们不让它停下的话,小机器人会一直工作下去,这样的循环就是无限循环。

通常循环都不是无限的,而是条件限制的:

有限循环

教练要这个球员练习5次挥杆,循环中的4组“下一个造型”和“等待0.25秒”代码块用来显示挥杆的动画,其实这也是重复,可以放到循环里,循环可以嵌套着循环,进一步简化:

嵌套循环

Python 循环的例子

我们来用Python计算斐波那契数列(Fibonacci sequence)的前100项,别担心,搜索一下吧,在小学二年级数学的找规律题中就会遇到它:

count = 1
current = 1
print (count, current) 
p2 = 0
p1 = current
while count < 100:
    count += 1
    current = p2 + p1
    print(count, current)
    p2 = p1
    p1 = current

count是个计数器,帮我们数着,第一项、第二项、第三项……直到第100项。

current是我们的数列中现在正在计算着的这一项的值,它等于之前两项的和,而之前的两项,我们分别放到p2、p1里。

可以把上面的代码保存为一个文件,比如Fibonacci.py,然后运行它,具体的操作去搜索或者看书吧。

运行的结果像这样:

1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
...
100 354224848179261915075

第100项大得有点吓人吧,斐波那契数列也叫兔子数列,模仿兔子的繁殖……

如果人手工计算,会是件骇人的工作,不过对计算机而言就不在话下了。

Human Resource Machine

这次我们不推荐书了,推荐一个小游戏——人力资源机器(Human Resource Machine),其实这个游戏的每一关都是一个编程小挑战哦!

节点目录

和小家伙一起学编程 000 出发

和小家伙一起学编程 001 条件

和小家伙一起学编程 002 循环

和小家伙一起学编程 003 随机

和小家伙一起学编程 004 编码

和小家伙一起学编程 005 对象

和小家伙一起学编程 006 函数

和小家伙一起学编程 007 算法

推荐阅读更多精彩内容