有人能告诉我这里到底发生了什么吗?print语句是在所有draw [3,2,1]完成后执行还是同时执行?我尝试添加print(n),但仍然无法弄清楚。它是在存储('#'*n)的值后解包的吗?我得到了我想要的,但只是需要了解实际发生了什么
def draw(n:int): if n<0: return draw(n-1) print ('#'*n) draw(3)
ergxz8rk1#
这打印来之后执行这所有这draw调用.如果你想要到打印它在这相同的顺序确保打印来第一在这调用这draw再次
def draw(n:int): if n<0: return print ('#'*n) # this should come first before the next call draw(n-1)
要了解递归的顺序,请使用这个可视化工具。2只需编写您提供的脚本并运行它。https://pythontutor.com/visualize.html#mode=edit
1条答案
按热度按时间ergxz8rk1#
这打印来之后执行这所有这draw调用.如果你想要到打印它在这相同的顺序确保打印来第一在这调用这draw再次
要了解递归的顺序,请使用这个可视化工具。2只需编写您提供的脚本并运行它。
https://pythontutor.com/visualize.html#mode=edit