【青少年编程】【Turtle】Day04:up!up!down!down!

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。

微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档)。

A:老师,你是在欺负我英语不好吗?整个英文标题

老师:对啊,你怎么知道我在欺负你

A:... ...

抬笔与落笔

(1)简介

今天我们一起来学习一个新的技能【抬笔】与【落笔】。

前面我们画了这么多图形,但是大家有没有发现,我们从来没有抬过笔,这是一件非常不科学的事,就好比,你笔尖从没离开过画纸,但却写下了下面这四个字(不能写连笔):

所以,在常规的绘画和写字中,我们其实是需要【抬笔】和【落笔】这两个动作的,同样的,图图也有这两个指令。

(2)格式

t.up()     # 抬笔
t.down()   # 落笔

把这两句放到完整的程序中,先前进100步,然后抬笔,前进50步,然后落笔,然后再前进100步,

想一想可能画出的图形是什么样子,然后再运行一下这段代码看一看吧:

import turtle as t
t.TurtleScreen._RUNNING = True
t.shape(name='turtle')
t.forward(100)
t.up()             #抬笔
t.forward(50)
t.down()           #落笔
t.forward(100)
t.done()

🚀挑战1

题目描述:画出一条虚线

(1)实线每一段长为10

(2)间断距离为5

提示:使用循环会更方便哦

🚀挑战2

题目描述:绘制8条平行线

(1)每条线的长度为100

(2)相邻两条线同一端之间的距离为20

(备注:平行线倾斜程度自己设定就好,可以用文字写出走的步骤,看看循环的部分在哪里)

🚀挑战3

不知不觉,又来到了最后一题,哦不对,是倒数第二题,这一题和上面一题难度差不多,耐心一点就能画出来。

题目描述:请画出四个平行的小旗子

(1)旗子高40

(2)旗面宽50

🚀挑战4

不知不觉,终于来到了最后一题,你还记得之前画过的圆吗?这次有了抬笔功能的配合,我们就可以画出一个很常见的汽车标志啦:

(1)两个圆中心之间的距离是85

(2)想一想每画完一个圆后【图图】要向前移动多少呢?

画一个圆的关键步骤参考:

for i in range(360):
    t.forward(1)
    t.right(1)

参考答案

挑战1:

import turtle as t

t.TurtleScreen._RUNNING = True
t.shape(name='turtle')

for i in range(15):
    t.down()  # 落笔
    t.forward(10)
    t.up()  # 抬笔
    t.forward(5)

t.done()

挑战2:

import turtle as t

t.TurtleScreen._RUNNING = True
t.shape(name='turtle')

for i in range(8):
    t.down()  # 落笔
    t.left(45)
    t.forward(100)
    t.backward(100)
    t.right(45)
    t.up()  # 抬笔
    t.forward(20)

t.done()

挑战3:

import turtle as t

t.TurtleScreen._RUNNING = True
t.shape(name='turtle')

for i in range(4):
    t.down()
    t.left(90)
    t.forward(100)
    t.right(90)
    t.forward(50)
    t.right(90)
    t.forward(40)
    t.right(90)
    t.forward(50)
    t.left(90)
    t.forward(60)
    t.left(90)
    t.up()
    t.forward(70)

t.done()

挑战4:

import turtle as t

t.TurtleScreen._RUNNING = True
t.shape(name='turtle')

t.down()
for i in range(360):
    t.forward(1)
    t.right(1)
t.up()
t.forward(85)

t.down()
for i in range(360):
    t.forward(1)
    t.right(1)
t.up()
t.forward(85)

t.down()
for i in range(360):
    t.forward(1)
    t.right(1)
t.up()
t.forward(85)

t.down()
for i in range(360):
    t.forward(1)
    t.right(1)

t.done()


(0)

相关推荐