如何在Python中绘制9x9网格

如何在Python中绘制9x9网格,python,for-loop,turtle-graphics,Python,For Loop,Turtle Graphics,我正在尝试使用turtle graphics在python中绘制一个9x9网格。我知道我需要使用两个循环,一个用于垂直线,一个用于水平线。然而,我能得到的唯一东西是屏幕上的一个大正方形。当我试图画线时,我得到了一个错误。这是我目前的计划: def main(): import turtle x=turtle.Turtle() x.penup() x.goto(-300,300) x.pendown() for i in range(4):

我正在尝试使用turtle graphics在python中绘制一个9x9网格。我知道我需要使用两个循环,一个用于垂直线,一个用于水平线。然而,我能得到的唯一东西是屏幕上的一个大正方形。当我试图画线时,我得到了一个错误。这是我目前的计划:

def main():

    import turtle
    x=turtle.Turtle()
    x.penup()
    x.goto(-300,300)
    x.pendown()
    for i in range(4):
        x.forward(600)
        x.right(90)

main()

有人能帮我画网格吗?

使用turtle绘制nxn网格的问题经常出现,解决方案通常是针对具体尺寸的,或者效率低下。让我们用一个简单的网格绘制例程来解决这两个问题,该例程处理N x N个网格:

import turtle


def main():
    x = turtle.Turtle()
    x.penup()
    x.goto(-150, -150)
    x.pendown()
    x.left(90)
    for i in xrange(2):
        for j in xrange(4):
            x.right(90)
            x.pendown()
            x.forward(300)
            x.right(180)
            x.forward(300)
            x.right(90)
            x.penup()
            x.forward(100)
        x.backward(100)
        x.right(90)

main()
from turtle import Screen, Turtle

N = 9  # N by N grid
LENGTH = 30  # each grid element will be LENGTH x LENGTH pixels

def grid(turtle, n, length):
    sign = 1
    for _ in range(2):

        for _ in range(n):
            turtle.forward(length * n)
            turtle.left(sign * 90)
            turtle.forward(length)
            turtle.left(sign * 90)
            sign = 0 - sign

        turtle.forward(length * n)
        [turtle.right, turtle.left][n % 2](90)
        sign = 0 - sign

screen = Screen()
yertle = Turtle()

yertle.penup()
yertle.goto(-N * LENGTH/2, -N * LENGTH/2)  # center our grid (optional)
yertle.pendown()

grid(yertle, N, LENGTH)

screen.exitonclick()
该算法使水平线蜿蜒:

然后旋转90度,并对垂直线执行相同操作:

有一些重新绘制的线段,但它保持在最低限度。虽然有些算法用来解决这类问题,循环N*N次,但这一次只循环2*N来绘制网格


您会遇到什么错误?“我需要两个for循环”,但您只有一个。另外,给你一个大正方形正是你引用的代码应该做的。你想让我们做你的家庭作业吗?