如何在Python中绘制9x9网格
我正在尝试使用turtle graphics在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):
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循环”,但您只有一个。另外,给你一个大正方形正是你引用的代码应该做的。你想让我们做你的家庭作业吗?