我寫了這個遞回代碼,它在烏龜中繪制一個六邊形螺旋,然后應該繪制一個方形螺旋。但相反,它向我發送了一個錯誤“相比之下超出了最大遞回深度”。然而,當我在單獨的檔案中執行這兩個函式時,它仍然有效。在這兩種情況下,函式都將螺旋數作為引數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)
uj5u.com熱心網友回復:
這是由于縮進錯誤:
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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344899.html
