我写了这个递归代码,它在turtle中画了一个六边形螺旋,然后应该画一个方形螺旋。但是它给了我一个错误
超过最大递归深度
然而,当我在单独的文件中执行这两个函数时,它可以工作。在这两种情况下,函数都以螺旋数n
作为参数。有人能告诉我为什么吗?
def hexagon(n):
if n>=1:
forward(n)
left(60)
hexagon(n-1)
hexagon(100)
clearscreen()
def square(n):
if n>=1:
forward(n*5)
right(90)
square(n-1)
square(50)
这是由于缩进错误:
if n>=1:
forward(n)
left(60)
hexagon(n-1)
应该是:
if n>=1:
forward(n)
left(60)
hexagon(n-1)
在square()
函数中也是如此。完整代码:
from turtle import *
def hexagon(n):
if n >= 1:
forward(n)
left(60)
hexagon(n-1)
def square(n):
if n >= 1:
forward(n*5)
right(90)
square(n-1)
hexagon(100)
clearscreen()
square(50)
done()