当前位置:首页>python>小学生Python进阶:用turtle画出美丽图案

小学生Python进阶:用turtle画出美丽图案

  • 2026-10-11 08:40:21
小学生Python进阶:用turtle画出美丽图案

前几节课我们用 Python 调用了 AI 接口,做了聊天助手和写作工具。这节课我们换个方向——用 Python 画图!Python 自带了一个叫 turtle 的画图模块,就像一只小海龟在屏幕上爬行,它走过的路径就是画出来的图案。

一、认识 turtle(小海龟)

turtle 是 Python 自带的模块,不需要安装,import 就能用。想象一只小海龟在沙滩上爬,它的尾巴会留下痕迹:

import turtle

t = turtle.Turtle()   # 创建一只海龟
t.forward(100)        # 向前走100步
t.left(90)            # 左转90度
t.forward(100)        # 再向前走100步

turtle.done()         # 保持窗口不关闭

运行后你会看到海龟画出了一个「L」形状!

二、基本命令速查表

命令作用示例
forward(n)向前走 n 步t.forward(100)
backward(n)向后退 n 步t.backward(50)
left(角度)左转多少度t.left(90)
right(角度)右转多少度t.right(45)
penup()抬起笔(移动不留痕迹)t.penup()
pendown()放下笔(开始画线)t.pendown()
pensize(n)设置线条粗细t.pensize(3)
color("颜色")设置颜色t.color("red")
speed(n)速度(1-10, 0最快)t.speed(5)
circle(r)画圆,r=半径t.circle(50)

三、实战1:画正方形

正方形有4条边,每条边一样长,每次转90度:

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

for i in range(4):      # 重复4次
    t.forward(100)      # 向前走100
    t.right(90)         # 右转90度

turtle.done()

运行效果:一个漂亮的正方形!🟦

四、实战2:画彩色五角星 ⭐

五角星需要转144度(不是72度哦!),每边画完转一次:

import turtle
t = turtle.Turtle()
t.speed(5)
t.color("gold")          # 金色
t.pensize(3)

for i in range(5):
    t.forward(150)       # 每条边150步
    t.right(144)         # 右转144度(关键!)

turtle.done()

💡 为什么是144度? 五角星每个尖角是36度,外角就是180-36=144度。这个数学知识以后会学到!

五、实战3:彩色螺旋线 🌀

用循环让线条越来越长,同时改变颜色:

import turtle
t = turtle.Turtle()
t.speed(0)              # 最快速度
t.pensize(2)

colors = ["red", "orange", "yellow", "green", "blue", "purple"]

for i in range(200):
    t.color(colors[i % len(colors)])   # 循环换色
    t.forward(i * 1.5)                # 线条越来越长
    t.right(91)                        # 转91度(不是90!产生螺旋)

turtle.done()

转91度而不是90度,这样每一圈都会比上一圈偏一点,形成螺旋效果!

六、实战4:彩色花朵 🌸

用多个圆叠加画出花朵:

import turtle
t = turtle.Turtle()
t.speed(0)
colors = ["hotpink", "deeppink", "magenta", "violet"]

for i in range(36):          # 画36个圆
    t.color(colors[i % 4])
    t.circle(50)             # 半径50的圆
    t.right(10)              # 每次转10度(360/36=10)

turtle.done()

36个圆,每个旋转10度,刚好绕一圈(36×10=360),形成一朵漂亮的花!

七、实战5:分形树 🌳

这是最酷的一个——用递归函数画一棵分形树:

import turtle

def draw_tree(t, length):
    """递归画树"""
    if length < 10:           # 树枝太短就停止
        return

    t.forward(length)         # 画树干
    t.left(30)                # 左转画左分支
    draw_tree(t, length * 0.7)  # 递归:左分支变短
    t.right(60)               # 右转画右分支
    draw_tree(t, length * 0.7)  # 递归:右分支变短
    t.left(30)                # 回到原方向
    t.backward(length)        # 回到起点

t = turtle.Turtle()
t.speed(0)
t.color("green")
t.left(90)                    # 朝上
draw_tree(t, 120)             # 从主干长度120开始
turtle.done()

🔥 重点理解:draw_tree 函数调用了自己(这就是递归!),每次树枝长度乘以0.7(变短70%)。当长度小于10时停止,否则会无限画下去!

八、保存你的画作

画好的图片可以保存为文件:

import turtle

t = turtle.Turtle()
# ... 你的画图代码 ...

# 保存为 EPS 格式(矢量图,高清)
ts = turtle.getscreen()
ts.getcanvas().postscript(file="my_drawing.eps")
print("已保存为 my_drawing.eps")

# 如果要保存为 PNG 格式,需要额外安装 pillow 和 ghostscript:
# pip install pillow
# 然后:
# from PIL import Image
# img = Image.open("my_drawing.eps")
# img.save("my_drawing.png")

💡 EPS 格式可以用很多软件打开(如 Adobe Illustrator、Photoshop),也可以用在线转换工具转成 PNG。

九、今天学到了什么?

  1. turtle 基本命令:forward/backward/left/right 控制海龟移动
  2. penup/pendown:控制是否画线(像抬笔/落笔)
  3. 循环画图形:for 循环 + 转角 = 正多边形
  4. 彩色图案:用列表循环切换颜色
  5. 螺旋原理:转角不是整除360的数会产生螺旋
  6. 递归画树:函数调用自己,画出自然的分形结构

十、下期预告

turtle 画图很有趣,但还不够刺激!下节课我们来做更酷的东西——pygame 游戏!用 Python 做一个真正可以玩的小游戏!

敬请期待:《小学生Python进阶:用pygame做一个小游戏》

有问题欢迎留言!

最新文章

随机文章