【青少年编程】【Turtle】Day03 初识循环
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。
微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档)。
今天,正儿八经给大家普及一下新知识。
⛽️知识加油站 —— 循环
循环在我们生活中非常普遍,比如我们乘坐旋转木马,旋转木马会一直循环,又比如说月球会一直不停绕着太阳旋转:
而在编程中,循环也是一个非常重要的知识,它可以让程序一直重复执行,比如下面这个程序,虽然只输入了一句话,但是通过设置循环次数为5,就能打印5次“我喜欢看海贼王”:
for i in range(5):
print('我喜欢看海贼王')
循环的格式
想使用循环非常简单,只需要按照下面的格式设置就可以了:
# 括号里填写你想循环的次数,写上冒号后,换行,
# 空4个空格后就可以写循环的内容
for i in range(次数):
循环的内容
📺练习1
使用循环画一个正方形。
一起来分析一下,要画一个正方形,需要下面这些步骤:
向前100
向右旋转90度
向前100
向右旋转90度
向前100
向右旋转90度
向前100
向右旋转90度
可以看成,我们要让计算机重复执行4次下面的内容:
下面的内容要重复执行4次:
向前100
向右旋转90度
这样就就可以写成循环了:
for i in range(4):
t.forward(100)
t.right(90)
完整代码:
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
#连续画四条边
for i in range(4):
t.forward(100)
t.right(90)
t.done()
🚀挑战1
题目描述:通过循环画出一个边长为100的等边三角形。
备注:等边三角形就是三条边的长度相等、三个角角度都为60度的三角形。
🚀挑战2
题目描述:通过循环画出一个正六边形。
备注:正六边形每个角的度数(大小)都一样,6个角总共720度。
提示:需要先计算正六边形的每个角大小,再得出图图每次需要转多少度,这是小学三年级除法的难度,你敢说不会?ㄟ(▔︵▔ㄟ)
🚀挑战3
能完成上面两道题,说明你还是很厉害的,那么咱们就提高一点难度吧,这道题你还能做对,那可就非常厉害了。
题目描述:使用循环,画出一个五角星:(可以像上面那样,先写出文字步骤来分析一下哦~)
👽拓展:如果画好了,还可以给五角星加上颜色
🚀挑战4
光阴似箭,日月如梭,一转眼,你,竟然,做到了最后一道题,你,这么,厉害,爸妈知道吗?如果不知道就赶紧告诉他们吧。
下面是第三天的终极挑战:画一个圆
提示:画圆其实很简单,虽然你看着是一个圆,但其实,他可以看成是很多短短的边组成的,那么怎么来画圆呢?你可以看一看下面这个视频:
https://baike.baidu.com/item/%E5%89%B2%E5%9C%86%E6%9C%AF/595781?secondId=25702197
看完视频是不是发现啦,古代人通过在圆内画多边形来近似测量圆一周的长度,多边形边越多,形状上就越接近圆,那么基于这个方法,我们可以用图图来帮我们画一个圆,怎么来画呢,我们知道圆有360°,也就是说,如果要画圆,【图图】需要围绕中心走360次,每一次走一步,每走一步向右转1度,画出一个有360条边的多边形就可以了。
下面就是画圆的关键,如果你不能理解,那就记住这个有趣的画圆公式吧:
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
#请删除这一行,然后写上循环360次的程序吧
t.forward(1) #向前走一步
t.right(1) #向右转一度
t.done()
如果你已经画好了圆,再试一试修改forward
里面的数字,看看会发生什么变化~
参考答案
挑战1:
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
for i in range(3):
t.forward(100)
t.left(120)
t.done()
挑战2:
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
for i in range(6):
t.forward(80)
t.right(60)
t.done()
挑战3:
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
for i in range(5):
t.forward(100)
t.right(180 - 180 / 5)
t.done()
挑战4:
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
for i in range(360):
t.forward(1)
t.right(360/360)
t.done()