Python的turtle库是内置的图形绘制工具,通过控制虚拟画笔的移动可以绘制各类图形,绘制星号正方形的核心是用星号字符作为画笔绘制痕迹,按照正方形的四条边路径移动画笔即可完成。

前置知识准备
在绘制之前需要先了解turtle库的几个基础方法:
penup():提起画笔,移动时不会留下绘制痕迹pendown():落下画笔,移动时会留下绘制痕迹forward(distance):向当前方向前进指定距离right(angle):顺时针旋转指定角度write(text, font=("字体", 大小, "样式")):在当前位置写入指定文本
绘制逻辑拆解
星号正方形的绘制需要遵循以下逻辑:
- 初始化turtle环境,设置画笔速度、隐藏画笔形状
- 确定正方形的起始位置,避免绘制内容超出画布范围
- 循环4次绘制正方形的四条边,每条边的绘制逻辑为:每隔固定步长写一个星号,前进到下一个位置,直到达到边长要求后顺时针旋转90度
- 绘制完成后保持画布窗口不关闭
完整代码示例
以下是可直接运行的绘制星号正方形的完整代码:
import turtle
# 初始化画笔
t = turtle.Turtle()
t.speed(1) # 设置绘制速度,1为最慢,方便观察过程
t.hideturtle() # 隐藏画笔形状
t.penup() # 提起画笔,移动到起始位置时不绘制痕迹
# 设置起始位置,让正方形居中显示
start_x = -100
start_y = 100
t.goto(start_x, start_y)
t.pendown() # 落下画笔,开始绘制
# 正方形边长设置为200,每条边每隔20个单位写一个星号
side_length = 200
step = 20
# 循环绘制4条边
for _ in range(4):
# 绘制当前边
current_pos = t.position()
# 计算当前边需要写的星号数量
star_count = side_length // step
for i in range(star_count):
t.write("*", font=("SimHei", 12, "normal"))
t.forward(step)
# 到达边角后顺时针旋转90度,准备绘制下一条边
t.right(90)
# 保持画布窗口不关闭
turtle.done()代码说明
代码中首先导入turtle库并完成画笔初始化,通过设置起始坐标让正方形居中显示。每条边的绘制通过内层循环实现,每隔20个单位写入一个星号,直到达到200的边长要求。绘制完一条边后,画笔顺时针旋转90度,重复4次即可完成正方形的绘制。如果调整step参数,可以改变星号的密集程度,调整side_length参数可以改变正方形的大小。
常见问题解答
如果运行代码后发现星号显示不完整,可以适当调整起始坐标的start_x和start_y值,或者减小side_length参数。如果需要更换星号以外的其他字符,只需要修改write方法中的第一个参数即可,比如换成#或者+都可以得到不同效果的图形。