题目
用 Python Turtle 绘制下面的图形。
题目说明
这道题要画出一个十字形。图形由 4 条一样长的线段组成,它们都从同一个中心点出发,分别指向右、下、左、上四个方向。开始写代码前,可以先观察这 4 条线段的共同点:每画完一条线,都要回到中心点,再换一个方向。
最终效果

Python 海龟绘图 100 题,第 8 题
知识点
t.fd(100):从中心点向当前方向画出一条 100 像素的线段。t.bk(100):沿原路后退 100 像素,让海龟回到中心点。t.rt(90):右转 90 度,准备画下一条线段。for i in range(4):重复 4 次,对应十字形的 4 个方向。
绘图思路
可以把这幅图拆成 4 次相同的动作:向前画一条线,沿原路退回中心点,再右转 90 度。第一次画向右的线,第二次画向下的线,第三次画向左的线,第四次画向上的线。每次都回到中心点,4 条线段就会共用同一个端点。
完整代码
# 不使用循环。
import turtle as t
t.fd(100)
t.bk(100)
t.rt(90)
t.fd(100)
t.bk(100)
t.rt(90)
t.fd(100)
t.bk(100)
t.rt(90)
t.fd(100)
t.bk(100)
t.rt(90)
# 使用循环。
for i in range(4):
t.fd(100)
t.bk(100)
t.rt(90)
关键步骤讲解
画出第一条线段
Turtle 默认面向右方,所以第一句 t.fd(100) 会直接画出向右的线段。这条线画完后,海龟停在线段的末端。
回到中心点
t.bk(100) 会让海龟沿刚才的路线退回中心点。画笔没有抬起时,后退路径会和原来的线重合,所以不会多出新的线条。
转向下一个方向
回到中心点后,写 t.rt(90),海龟会向右转 90 度。这样下一次 t.fd(100) 就会从中心点往新的方向画线。
用循环减少重复代码
十字形的 4 条线段画法完全一样,只是方向每次变 90 度。把“前进、后退、右转”放进 for i in range(4),代码更短,也更容易看出图形的规律。
常见错误
- 忘记写
t.bk(100):下一条线会从上一条线的末端出发,图形不会共用中心点。 - 把
t.rt(90)写在后退前面:海龟会在线段末端转向,位置就错了。 - 循环次数写成
3:只能画出 3 个方向,少一条线段。 - 转角写成
45或120:4 条线不能平均分布在一圈里。
练习
把 100 改成 60 或 150,观察十字形大小有什么变化。再把 t.rt(90) 改成 t.lt(90),看看 4 条线段的绘制顺序会不会改变。