题目
用 Python Turtle 绘制下面的图形。
题目说明
这道题的图形像一个由小正方形边框拼出来的十字。每一小段长度都是 50 像素,转角都是 90 度。观察图形时,可以先找重复单元:每一组都是连续画 3 段线,再调整方向,下一组继续画。
最终效果

Python 海龟绘图 100 题,第 11 题
知识点
t.fd(50):每次画出一小段 50 像素的边。t.lt(90):向左转一个直角,用来画阶梯形转折。t.rt(90):向右转一个直角,让下一组线段继续向外展开。- 嵌套循环:外层控制重复组数,内层控制每组里的 3 段线。
绘图思路
可以把图形拆成 4 组相同的动作。每一组先画 3 条 50 像素的线段,每画一段就左转 90 度;画完一组后,再右转 180 度或按固定动作调整方向。这样重复 4 次,就能得到题图中的阶梯十字形。
完整代码
# 不使用循环。
import turtle as t
t.fd(50)
t.lt(90)
t.fd(50)
t.lt(90)
t.fd(50)
t.rt(90)
t.fd(50)
t.lt(90)
t.fd(50)
t.lt(90)
t.fd(50)
t.rt(90)
t.fd(50)
t.lt(90)
t.fd(50)
t.lt(90)
t.fd(50)
t.rt(90)
t.fd(50)
t.lt(90)
t.fd(50)
t.lt(90)
t.fd(50)
t.rt(90)
# 使用循环,方法一。
for i in range(4):
for j in range(3):
t.fd(50)
t.lt(90)
t.rt(180)
# 使用循环,方法二。
for i in range(4):
t.fd(50)
t.lt(90)
t.fd(50)
t.lt(90)
t.fd(50)
t.rt(90)
关键步骤讲解
找到重复单元
这道题不是普通的正方形或长方形,不能只看外轮廓。把它拆开后,会发现每一组都是 3 条短线段和几个直角转向。
每段长度保持一致
题图里的标注都是 50,所以代码里每次前进都写 t.fd(50)。只要其中一段长度变了,十字形就会不对称。
方法一使用嵌套循环
外层 for i in range(4) 表示一共画 4 组。内层 for j in range(3) 表示每组画 3 段线,每段之后左转 90 度。每组结束后用 t.rt(180) 调整到下一组的方向。
方法二直接重复一组动作
方法二把每组的 3 次前进和转向都写出来,只用一层循环重复 4 次。它比不使用循环短,也比嵌套循环更容易一眼看懂。
常见错误
- 循环次数写成
3:图形只会画出三组,少一个方向。 - 把
t.rt(180)写成t.rt(90):方法一里下一组方向会错。 - 忘记内层循环缩进:Python 会报错,或者只重复了部分命令。
- 某一处把
50写成其他数字:图形会失去规则的阶梯效果。
练习
把所有 50 改成 40 或 70,观察图形整体大小怎么变化。也可以只保留方法二,试着把一组动作改成函数,再调用 4 次。