Appearance
0201 循环画五角星
做成什么
海龟连续画五条等长的线,每次转 144 度,最后一笔正好回到起点,得到一个一笔画成的五角星。
给谁用:已经能画正方形和三角形,开始接触"角度要算"的孩子。这一页的关键不是画图,是理解 144 这个数字。
需要什么基础
- 会写
for循环 - 知道三角形外角是 120 度(360÷3)、正方形是 90 度(360÷4)
- 能理解"转的是外角,不是内角"
完整代码
python
import turtle
t = turtle.Turtle()
t.speed(3)
t.pensize(2)
t.pencolor("goldenrod")
for i in range(5):
t.forward(150)
t.right(144) # 关键:144 = 180 - 36
turtle.done()容易卡在哪
写成 72 度,画出来是乱线。 72 = 360÷5,那是画正五边形用的角度;五角星要的是 180−36 = 144。这是最常见的一个错,孩子如果写 72,不要直接改,让他先跑一遍看结果,再一起算为什么。
画出来是五角星但方向不对,头朝下。 turtle 默认朝右(0 度方向)。开始前加一句 t.left(90) 让海龟先朝上,星星就正了。
线条没连回起点,差了一点。 浮点误差,肉眼几乎看不出,不影响。想更精确可以用 t.setheading() 显式设定角度。
想画填充的实心五角星。
python
t.begin_fill()
t.fillcolor("gold")
for i in range(5):
t.forward(150)
t.right(144)
t.end_fill()注意五角星用 begin_fill() 填充时中心那块小五边形也会被填上,这是正常的。
怎么改
- 改
forward(150)的步长,看大小变化 - 改成七角星:
range(7)+right(180 - 180/7)(约 154.3 度) - 画完一个后抬笔移位,画出一排大小不同的星星
- 用
t.penup()/t.pendown()画出虚线效果的星星
第 2 步有点难,可以提示:180 - 180/边数。算不出来也没关系,让他试几个数,看哪个能闭合——试错本身就是在学角度。
文件下载与版本
- 环境:Python 3.8+,无需第三方库
- 单文件源码:直接复制上面的代码即可
- 整套打包下载正在整理中
最后核对:2026-10-20,Python 3.11 下实际运行通过。
