如何修改Python的square()绘图函数以支持指定起始位置参数?
改进Python海龟绘图square函数的具体操作
步骤1:修改square函数定义,添加参数
把原来无参数的函数改成带length(边长)、startx(起始x坐标)、starty(起始y坐标)的函数,替换掉固定的起始位置:
def square(length, startx, starty): mike.penup() # 抬笔,避免移动到起始点时留下痕迹 mike.goto(startx, starty) # 使用传入的起始坐标 mike.pendown() # 绘制正方形四条边,用循环简化重复代码 for _ in range(4): mike.forward(length) mike.left(90) mike.penup() # 原代码末尾的forward(length)可根据需求保留,用于移动到下一个绘制位置
步骤2:调用函数时传入参数
要绘制4个不同的图形,直接给每个square()调用传入对应的边长和起始坐标即可,示例如下:
# 先确保已初始化海龟对象(你的代码里应该包含这部分) import turtle mike = turtle.Turtle() # 调用改进后的square函数,绘制4个不同位置的正方形 square(50, -250, 250) # 边长50,起始位置(-250, 250) square(60, -150, 250) # 边长60,起始位置(-150, 250) square(70, -250, 150) # 边长70,起始位置(-250, 150) square(80, -150, 150) # 边长80,起始位置(-150, 150) # 保持窗口显示,直到手动关闭 turtle.done()
关键修改说明
- 新增的三个参数让你能完全控制每个正方形的大小和绘制起点,不再受固定位置限制
- 加入
mike.penup()在移动到起始点前,是海龟绘图的标准操作,避免不必要的线条 - 用
for循环替代重复四次的forward+left,让代码更简洁易维护(也可以保留原来的四次写法,效果一致)
内容的提问来源于stack exchange,提问作者Louis Sypeck
相关产品推荐
相关产品推荐

