<p>你在这个函数中使用了两次高度</p>
<pre><code>def drawAllRectangles(startX, startY): # function that will draw all rectangles to make up chessboard
yLocation = startY
while yLocation <= (height - 2 * spaceY): # draw rectangles on rows 1, 3, 5, 7
global xLocation
xLocation = startX
while xLocation <= (width - 2 * spaceX):
drawRectangle()
xLocation += 2 * spaceX
yLocation += 2 * spaceY
turtle.penup()
turtle.goto(startX + spaceX, startY + spaceY)
turtle.pendown()
yLocation = startY + spaceY
while yLocation <= (height - spaceY): # draw rectangles on rows 2, 4, 6, 8
xLocation = startX + spaceX
while xLocation <= (width - spaceX):
drawRectangle()
xLocation += 2 * spaceX
yLocation += 2 * spaceY
</code></pre>
<p>该函数中不存在该变量。不要使用global。你用身高</p>
^{pr2}$
<p>所以你需要在这里做同样的事情</p>
<pre><code>def drawAllRectangles(startX, startY, width, height):
</code></pre>
<p>所以当你调用drawAllRectangles时,确保你传入了这4个变量。在</p>
<p>另外,将所有导入移到文件的顶部。看看eval做了什么(<a href="https://www.programiz.com/python-programming/methods/built-in/eval" rel="nofollow noreferrer">https://www.programiz.com/python-programming/methods/built-in/eval</a>)。你不需要在你的程序中的任何地方都需要全局数据或评估。在</p>