青少年编程:用Python探究数学(2)
2020-05-27
在上一篇中,绘制了一个正方形,但是,其中要不断重复某些语句。幸亏是正方形,如果是更多边的图形,重复就更多了。在Python语言中,为了让重复的事情做起来不那么烦人,就设计了一种名字为for循环的循环语句。注意,for循环,只是循环语句中的一种。
下面我们就来看看for循环如何实现。
还是要打开IDLE,新建文件,并命名为for_loop.py
。然后输入下面的代码:
1 | for i in range(2): |
这里使用了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 | hello |
range(2)
就重复了2次,你可以尝试其他数值,比如rang(10)
是不是重复10次?自己试试。
把i
的值打印出来,看看是不是跟上面分析一样?把文件中的代码修改为:
1 | for i in range(10): |
输出结果是:
1 | 0 |
现在回到正方形的绘制,让我们来使用刚刚学会的循环语句实现。打开myturtle.py
文件,输入一下代码:
1 | from turtle import * |
正方形,一共4条边,重复4次,所以使用range(4)
。每次循环,都执行向前走100个像素,这是画出了边的长度;然后right(90)
,即向右转90度,为下次绘制边长做好准备。
保存文件,然后执行,得到一个正方形。此处不显示结果了。
如果,要绘制正6边形,应该怎么写这个程序?
首先,正六变形一共有6条边,那么就是循环6次,即range(6)
。
然后分析一下,每条边画完之后,海龟应该转多少度?向什么方向转?
上面画了一个正六边形,假设现在海龟在D点了,如果要绘制DC这条边,就要向右转60°,也就是正多边形的外角度数。
理解了上面的道理,就可以修改myturtle.py
文件,代码如下:
1 | from turtle import * |
最后得到如下输出结果:
如果理解了上面的程序,再研究一下,正八变形怎么画?
专注于软件和AI的公众号
老齐教室
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
关注微信公众号,读文章、听课程,提升技能