当前位置:首页>python>小学生Python进阶:turtle第3课·给图形填色

小学生Python进阶:turtle第3课·给图形填色

  • 2026-10-11 08:32:45
小学生Python进阶:turtle第3课·给图形填色

上节课学会了给画笔换粗细和颜色,但画出来的图形都是空心的——只有边框,里面是空的。这节课我们学一个超酷的功能:给图形填色!

一、今天学什么?

学会三个新命令,让图形从「空心」变成「实心」:

  • fillcolor() — 设置填充颜色
  • begin_fill() — 开始填色(画之前调用)
  • end_fill() — 结束填色(画完之后调用)

简单记:先设颜色 → 开始填 → 画图形 → 结束填

二、新命令速查

命令作用示例
t.fillcolor("颜色")设置填充颜色t.fillcolor("red")
t.begin_fill()开始记录要填色的图形t.begin_fill()
t.end_fill()结束记录,自动填色t.end_fill()

三、填色三步法

填色就像给图案涂颜色,分三步:

# 第1步:设置填充颜色
t.fillcolor("red")

# 第2步:开始填色
t.begin_fill()

#   ↓ 这里画你的图形 ↓
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)

# 第3步:结束填色(自动把颜色填进去)
t.end_fill()

💡 关键:begin_fill() 和 end_fill() 必须成对出现,就像括号一样!

四、实战1:填色正方形 🔴

把上节课的正方形填上红色:

import turtle

t = turtle.Turtle()
t.speed(3)

t.fillcolor("red")      # 设置填充色为红色
t.begin_fill()          # 开始填色

for i in range(4):      # 画正方形
    t.forward(100)
    t.left(90)

t.end_fill()            # 结束填色

turtle.done()

运行后你会看到一个实心红色正方形!🟥

五、边框颜色 vs 填充颜色

pencolor 和 fillcolor 是独立的!可以分别设置:

import turtle

t = turtle.Turtle()
t.speed(3)
t.pensize(3)

# 蓝色边框 + 黄色填充
t.pencolor("blue")      # 边框颜色:蓝色
t.fillcolor("yellow")   # 填充颜色:黄色
t.begin_fill()

for i in range(4):
    t.forward(100)
    t.left(90)

t.end_fill()

turtle.done()

效果:一个蓝色边框的黄色正方形!🟨

💡 就像画画一样:先用铅笔勾线(pencolor),再用水彩涂色(fillcolor)!

六、实战2:填色三角形 🟢

三角形也可以填色:

import turtle

t = turtle.Turtle()
t.speed(3)
t.pensize(3)

t.pencolor("darkgreen")     # 深绿色边框
t.fillcolor("lightgreen")   # 浅绿色填充
t.begin_fill()

for i in range(3):          # 等边三角形
    t.forward(120)
    t.left(120)

t.end_fill()

turtle.done()

一个清新的绿色三角形!🟩

七、实战3:填色圆形 🔵

circle() 画的圆也能填色:

import turtle

t = turtle.Turtle()
t.speed(3)
t.pensize(3)

t.pencolor("darkblue")    # 深蓝色边框
t.fillcolor("skyblue")    # 天蓝色填充
t.begin_fill()

t.circle(60)              # 半径60的圆

t.end_fill()

turtle.done()

一个漂亮的天空蓝圆!🔵

八、实战4:交通信号灯 🚦

把三种图形组合起来,画一个交通信号灯:

import turtle

t = turtle.Turtle()
t.speed(5)

# 画灯柱
t.penup()
t.goto(-20, -80)
t.pendown()
t.fillcolor("gray")
t.begin_fill()
for i in range(2):
    t.forward(40)
    t.left(90)
    t.forward(220)
    t.left(90)
t.end_fill()

# 红灯
t.penup()
t.goto(0, -50)
t.pendown()
t.fillcolor("red")
t.begin_fill()
t.circle(20)
t.end_fill()

# 黄灯
t.penup()
t.goto(0, 10)
t.pendown()
t.fillcolor("yellow")
t.begin_fill()
t.circle(20)
t.end_fill()

# 绿灯
t.penup()
t.goto(0, 70)
t.pendown()
t.fillcolor("green")
t.begin_fill()
t.circle(20)
t.end_fill()

turtle.done()

🚦 红灯停、绿灯行、黄灯等一等!

九、小挑战

试试这些挑战:

  • 🟢 简单:画一个填色的五角星(提示:用第1节课的星形代码 + 填色)
  • 🟡 中等:画一面旗帜(长方形填红色 + 长方形填黄色当星星)
  • 🔴 困难:画一串彩色气球(多个填色圆 + 细线)

十、下期预告

今天学会了填色,但每次画图前都要手动移到新位置,有点麻烦。下节课我们学抬笔和落笔——让海龟可以「飞」到新位置再开始画!

下期:《turtle第4课:抬笔与落笔》

有问题欢迎留言!

最新文章

随机文章