您的位置:首页 > 编程语言 > Python开发

Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 3. 循环

2017-11-20 10:10 1161 查看
在前面的教程中,咪博士留了一道练习题给大家—-画正方形,相信聪明的你应该已经画出来了。



下面是咪博士实现的代码。 是不是跟你的代码很像呢?

1 import turtle
2
3 turtle.forward(200)
4 turtle.left(90)
5
6 turtle.forward(200)
7 turtle.left(90)
8
9 turtle.forward(200)
10 turtle.left(90)
11
12 turtle.forward(200)
13 turtle.left(90)
14
15 turtle.exitonclick()


虽然这段代码可以成功绘制出一个正方形,但它还有些不足的地方。仔细观察,我们发现,有许多代码是重复的:第 3, 4 行的代码重复了 4 次。在编程的时候,我们要尽量避免重复的代码。遇到需要重复执行的语句,我们应当使用循环来实现。

下面是咪博士用循环重新实现的画正方形的功能。怎么样,代码是不是简洁许多了呢?但是好像看不太懂了?

1 import turtle
2
3 for i in range(4):
4     turtle.forward(200)
5     turtle.left(90)
6
7 turtle.exitonclick()


别急,听咪博士为你讲解。

第 3, 4, 5 行就是一个循环,用于执行重复的语句。

其中,第 4, 5 行的代码和原来的版本”几乎”是一样的,它们是需要重复执行的语句,我们称之为循环体。不过,一定要注意的是,同原来的版本相比,第 4, 5 行的代码不是顶格写的,而是向右缩进了一些(所以是“几乎”一样,而不是完全相同),Python 正是根据缩进来推断哪些语句属于循环体。通常我们使用连续的 4 个空格符来表示一级的缩进。

第 3 行的代码是一个 for 循环。它的作用是重复执行循环体中的语句。可是要重复执行多少次呢?答案是 4 次。为什么?我们先来看 range 函数,range(n) 相当于产生一个从 0 到 n-1 的等差数列, 即 0, 1, 2…, n-1,总共 n 个数字。所以,这里的 range(4) 相当于数列 0, 1, 2, 3,总共是 4 个数字。 for i in range(4): 的意思就是每次循环从数列中取出 1 个数字,赋值给变量 i,直至取完数列中所有的数字,即

第 1 次循环的时候,i = 0

第 2 次循环的时候,i = 1

第 3 次循环的时候,i = 2

第 4 次循环的时候,i = 3

然后呢?然后循环就结束了,因为 range(4) 对应的数列只有 0, 1, 2, 3 这 4 个数字。这 4 个数字通过 4 次循环已经全部取完了。没数字可取了,所以循环也就结束了。因此,第 3 行的代码 for i in range(4): 将执行 4 次循环体(第 4, 5 行的代码)

最后,咪博士给大家展示一个更高级一点的例子—-嵌套循环,即循环体里面还有循环!

1 import turtle
2
3 for i in range(16):
4     turtle.left(22.5)
5
6     for j in range(4):
7         turtle.forward(200)
8         turtle.left(90)
9
10 turtle.exitonclick()


【练习】

先不要运行代码,尝试分析一下,上面这段代码会绘制出什么样的图案?

让代码跑起来,看看你的分析是否正确。

原文链接:http://www.ipaomi.com/2017/11/16/python-零基础-快速入门-趣味教程-咪博士-海龟绘图-turtle-3-循/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐