python 调用递归后使用print()

qojgxg4l  于 2022-11-28  发布在  Python
关注(0)|答案(1)|浏览(157)

有人能告诉我这里到底发生了什么吗?print语句是在所有draw [3,2,1]完成后执行还是同时执行?我尝试添加print(n),但仍然无法弄清楚。它是在存储('#'*n)的值后解包的吗?我得到了我想要的,但只是需要了解实际发生了什么

def draw(n:int):
    if n<0:
        return
    draw(n-1)
    print ('#'*n)
draw(3)
ergxz8rk

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

相关问题