【青少年编程】【Turtle】Day05:循环提升
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。
微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档)。
老师:通过两天的训练,相信大家对于循环已经掌握的非常好了,今天我们要学习的是【循环中的循环】。
A:【循环中的循环】?老师,你是在传授武林秘籍吗?
老师:你是猴子派来的吗?总想着武林秘籍
A:那什么是【循环中的循环】啊?
老师:听我细细道来
循环中的循环
循环中的循环是编程中常用的一种程序的结构,它也被称为【循环嵌套】,也就是在一个大循环里套着小循环,听起来有点复杂,但其实非常的简单,一起来学习一下吧!
在学习【循环嵌套】前我们先来练习一道题目,这样有助于我们理解【循环嵌套】的含义。
🚀挑战1
题目描述:参考下面图示,借助循环,画出四个并排在一起的正方形。
(1)正方形的边长是40
(2)两个正方形之间的距离是20
⬇️⬇️⬇️ 做完后再看,实在做不出来也可以看,不到万不得已还是别看 ⬇️⬇️⬇️
「解析」:大家说如果要画四个正方形,需要重复画几个一样的正方形?
4个对吧,那如果用图图来画一个正方形需要重复几次【向前走100向右转90度】呢?
也是4次,所以我们来看看,如果要通过图图来画出它需要怎么做:
#画第一个正方形
for i in range(4):
t.forward(40)
t.right(90)
# 画完后要向前移动到到第二个正方形的顶点,
# 需要向前移动60步,移动的时候是抬笔的状态
t.up()
t.forward(60)
t.down()
如果还要画三次应该怎么办呢?哈哈,对的,继续用同样的语句三遍就行了。
#画第一个正方形
for i in range(4):
t.forward(40)
t.right(90)
t.up()
t.forward(60)
t.down()
#画第二个正方形
for i in range(4):
t.forward(40)
t.right(90)
t.up()
t.forward(60)
t.down()
#画第三个正方形
for i in range(4):
t.forward(40)
t.right(90)
t.up()
t.forward(60)
t.down()
#画第四个正方形
for i in range(4):
t.forward(40)
t.right(90)
t.up()
t.forward(60)
t.down()
这个时候你发现了什么,是不是下面段落连续出现了4次,我们学习循环时说过,当重复不断出现时可以使用循环,这里仍然可以的,将这个循环的逻辑写成中文就是:
下面的内容要循环4次:
for i in range(4):
t.forward(40)
t.right(90)
t.up()
t.forward(60)
t.down()
把中文也变成程序,和之前循环是一样的方式,加上for i in range()
,但是一定要记得,后面这个整体前面有四个空格,还记得之前讲循环的时候说过吧,加四个空格是为了告诉程序,下面的内容归我管,要循环4次,可不要忘了哦:
是不是觉得好像听懂了,又好像有一点疑惑,怎么办呢?很简单,再来做两道题自然就懂了。
🚀挑战2
题目描述:参考下面的图示,借助循环,画出四个并排在一起的三角形。
提示:
➡️可以不用循环嵌套,但是呢,使用循环嵌套又会更简单,算了,用不用看你吧!
➡️如果使用嵌套,你可以参考上面画4个正方形的方法哦,先用中文分析循环次数,再写成程序。
(1)等边三角形的边长是40
(2)两个三角形之间的距离是20
🚀挑战3
不得了不得了,已经做到第3题了,少年我看你天赋异禀啊!
题目描述:参考下面的图示,借助循环,画出一个风车
👽拓展:在风车的基础上进行创作吧,看看你的风车能比下面的好看吗?
🚀挑战4(选做)
这道题选做哦,如果你觉得前面的已经难不倒你了,那就再来试试这一道题吧!
题目描述:参考下面的图示,借助循环,画出一个飞镖
(1)菱形的两个角分别是60°和120°
参考答案
🚀挑战1
方法一:
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
#画第一个正方形
for i in range(4):
t.forward(40)
t.right(90)
t.up()
t.forward(60)
t.down()
#画第二个正方形
for i in range(4):
t.forward(40)
t.right(90)
t.up()
t.forward(60)
t.down()
#画第三个正方形
for i in range(4):
t.forward(40)
t.right(90)
t.up()
t.forward(60)
t.down()
#画第四个正方形
for i in range(4):
t.forward(40)
t.right(90)
t.up()
t.forward(60)
t.down()
t.done()
方法二:
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
for i in range(4):
for i in range(4):
t.forward(40)
t.right(90)
t.up()
t.forward(60)
t.down()
t.done()
🚀挑战2
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
for i in range(4):
for i in range(3):
t.forward(40)
t.right(120)
t.up()
t.forward(60)
t.down()
t.done()
🚀挑战3
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
for i in range(4):
for i in range(3):
t.forward(100)
t.left(120)
t.right(90)
t.done()
🚀挑战4
import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
for i in range(6):
for i in range(2):
t.forward(100)
t.right(60)
t.forward(100)
t.right(120)
t.right(60)
t.done()