使用Python Turtle绘制xy轴方格网格遇阻,求技术指导
解决turtle绘制网格的问题
你的代码存在几个逻辑问题,导致无法画出完整的方格网格:
- 第一个
while循环(处理x轴)缩进错误,且循环内仅更新x值,没有调用square()函数绘制方格 - 第二个
while循环初始y值为300,条件y < 300一开始就不成立,循环直接跳过 - 缺少嵌套循环:绘制网格需要先固定一行的y值,在该行从左到右画完所有x方向的方格后,再将y值下移,重复执行这个过程
修正后的代码如下:
import turtle def square(x, y): turtle.penup() turtle.setpos(x, y) turtle.pendown() for i in range(4): turtle.forward(60) turtle.right(90) # 初始y值(网格顶部位置) y = 300 # 外层循环控制y轴方向的行,每次下移100(匹配方格间距) while y >= -100: # 可调整此值控制网格行数 x = -100 # 内层循环控制x轴方向的列,每次右移100 while x < 300: square(x, y) x += 100 y -= 100 turtle.done() # 保持绘图窗口不自动关闭
关键改动说明:
- 采用嵌套循环结构:外层循环遍历每一行的y坐标,内层循环遍历当前行的所有x坐标,每遍历一个坐标就绘制一个方格
- 调整y轴循环的条件:从
y >= -100开始,每次递减100,实现从顶部向下绘制多行方格 - 每次进入内层循环时重置x为初始值
-100,确保每一行都从最左侧开始绘制 - 添加
turtle.done()避免绘图完成后窗口直接关闭
内容的提问来源于stack exchange,提问作者Bungee
相关产品推荐
相关产品推荐

