基本的海龟递归

时间:2014-09-05 19:23:28

标签: python turtle-graphics

我有一个使用Turtle with Python的快速问题。我希望最终的绘图看起来像这样:http://i.stack.imgur.com/IFw5G.jpg

但是我的代码只做了其中的一部分,我无法理解我的生活。这是一个家庭作业,所以请不要为我做,请引导我朝着正确的方向,因为我无法弄清楚我做错了什么。究竟我无法弄清楚的是如何让它重现图像左侧的方块,因为它只在右侧。

这是我的代码:

from turtle import *
differentColors = ['green', 'blue'] 
def jester(N, L): 
    if N <=0: 
        pass    
    else:       
       pencolor(differentColors[N % len(colors)])
       forward(L/2) 
       left(90)         
       forward(L)       
       left(90)         
       forward(L)   
       left(90)         
       forward(L)       
       left(90)         
       forward(L/2)         
       forward(L/2)         
       left(90)         
       forward(L)       
       right(150)       
       jester(N-1, L/2)                     

jester(4, 100)
谢谢你!

1 个答案:

答案 0 :(得分:0)

您可能会发现调试器的使用很有帮助。将代码运行为

import pdb
from turtle import *

differentColors = ['green', 'blue'] 
def jester(N, L):
    ...

pdb.run('jester(4, 10)')

首先输入s进入该功能,然后在下一步中键入n,逐个执行每一行,如果您需要当你到达jester类型s时,进入递归调用h类型c。这应该可以帮助您查看代码出错的位置。由于您的代码非常重复(几乎总是有龟的东西),您可能需要添加一些打印语句来说明代码的每个部分应该做什么(比如绘制正方形的顶部或进入位置)对于递归调用)。

可以找到有关python调试器的其他命令和更多信息here。摘要u表示求助,{{1}}表示继续,{{1}}表示完成当前函数调用并返回上一个函数。您还可以通过键入名称来查看变量的值。