【问题标题】:Maximum recursion depth exceeded in comparison in python turtle与python龟相比,超过了最大递归深度
【发布时间】:2021-10-28 20:47:23
【问题描述】:

我编写了这个递归代码,它在海龟中绘制一个六边形螺旋,然后应该绘制一个方形螺旋。但相反,它向我发送了一个错误“比较中超出了最大递归深度”。然而,当我在单独的文件中执行这两个功能时,它会起作用。在这两种情况下,函数都将螺旋数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) 

【问题讨论】:

  • 看起来像无限循环。你递归调用无限次。

标签: recursion turtle-graphics python-turtle


【解决方案1】:

这是由于缩进错误:

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()

【讨论】:

    猜你喜欢
    • 2016-09-19
    • 2022-08-23
    • 2022-08-07
    • 2017-11-05
    • 2013-11-30
    • 2020-10-10
    • 2019-04-18
    • 1970-01-01
    • 2019-03-23
    相关资源
    最近更新 更多