人類發明制造了許多機器來代替自己做那些重復繁瑣的勞動。
在編程中,循環就是做這些重復的工作的。
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),其實這個游戲的每一關都是一個編程小挑戰哦!