基础乌龟递归
我有个关于用Python的Turtle库的问题。我想让最后画出来的图像看起来像这样:https://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
你可以试试使用调试器,这会对你有帮助。运行你的代码时,输入
import pdb
from turtle import *
differentColors = ['green', 'blue']
def jester(N, L):
...
pdb.run('jester(4, 10)')
首先输入 s
来进入这个函数,然后输入 n
来下一步执行每一行代码。如果你想进入递归调用的 jester
函数,当到达它时输入 s
。这样可以帮助你找到代码出错的地方。因为你的代码有点重复(画乌龟的代码通常都是这样),你可以加一些打印语句,告诉自己每一部分代码的作用是什么(比如画正方形的上边,或者准备进行递归调用的位置)。
关于 Python 调试器的更多命令和信息,可以在 这里找到。总结一下,输入 h
可以获取帮助,c
可以继续执行,u
可以结束当前函数调用并返回到上一个函数。你还可以通过输入变量的名字来查看它的值。