老齐教室

青少年编程:用Python探究数学(2)

在上一篇中,绘制了一个正方形,但是,其中要不断重复某些语句。幸亏是正方形,如果是更多边的图形,重复就更多了。在Python语言中,为了让重复的事情做起来不那么烦人,就设计了一种名字为for循环的循环语句。注意,for循环,只是循环语句中的一种。

下面我们就来看看for循环如何实现。

还是要打开IDLE,新建文件,并命名为for_loop.py。然后输入下面的代码:

1
2
for i in range(2):
print("hello")

这里使用了range()函数,它是一个内置函数,通过变量i可以依次得到这个函数执行之后返回对象中所包含的东西。那么,这个函数返回了什么呢?它的返回对象中包含了两个整数,0和1。也就是说range(2)中以2为参数,得到了0-2的整数,但是不包含2。如果是range(10),这个函数返回值中就包含了0-10但不包含10的整数,即:0、1、2、3、4、5、6、7、8、9。

在上面的代码中,就意味着变量i可以先等于0,然后等于1,也就是要执行2次。

第一行,用for开始的,就是for循环。注意观察,这句以冒号结束。

然后空四个空格,再写语句print('hello')。这个语句就是循环的内容。前面已经说了,i先是0,然后就执行print('hello');而后i又是1,再次执行这句。这就是所谓循环。

执行这个文件(注意:先保存,再按F5执行),会打印出下面的结果。

1
2
hello
hello

range(2)就重复了2次,你可以尝试其他数值,比如rang(10)是不是重复10次?自己试试。

i的值打印出来,看看是不是跟上面分析一样?把文件中的代码修改为:

1
2
for i in range(10):
print(i)

输出结果是:

1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9

现在回到正方形的绘制,让我们来使用刚刚学会的循环语句实现。打开myturtle.py文件,输入一下代码:

1
2
3
4
5
6
from turtle import *

shape("turtle")
for i in range(4):
forward(100)
right(90)

正方形,一共4条边,重复4次,所以使用range(4)。每次循环,都执行向前走100个像素,这是画出了边的长度;然后right(90),即向右转90度,为下次绘制边长做好准备。

保存文件,然后执行,得到一个正方形。此处不显示结果了。

如果,要绘制正6边形,应该怎么写这个程序?

首先,正六变形一共有6条边,那么就是循环6次,即range(6)

然后分析一下,每条边画完之后,海龟应该转多少度?向什么方向转?

上面画了一个正六边形,假设现在海龟在D点了,如果要绘制DC这条边,就要向右转60°,也就是正多边形的外角度数。

理解了上面的道理,就可以修改myturtle.py文件,代码如下:

1
2
3
4
5
6
from turtle import *

shape("turtle")
for i in range(6):
forward(100)
right(60)

最后得到如下输出结果:

如果理解了上面的程序,再研究一下,正八变形怎么画?


专注于软件和AI的公众号

老齐教室

使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

关注微信公众号,读文章、听课程,提升技能