猛的发现今天是植树节,从来不关注节日的我今日要为咱们植树节来纪念纪念,咱们画颗树!
本文涉及Python Turtle库,递归算法…
先给代码,咱们再来慢慢解释递归的魅力以及一个理解递归算法运行机制的好方法!
```python
import turtle as t
def tree(n):
if n > 5:
t.forward(n)
t.right(20)
tree(n-15) #在所有此递归调用全部压入栈之后运行下面的代码
t.left(40)
tree(n-10)
t.right(20)
t.backward(n)
if __name__ == '__main__':
t.penup()
t.right(90)
t.forward(150)
t.pendown()
t.left(170)
tree(100) #递归画分支
t.mainloop()
运行结果:
咱们先为以上代码所需的基础做出描述!
1.首先是栈的概念,栈是一种线性结构,讲概念过于抽象,不妨想象你手上有五本书,你一本一本的放到桌子上,最先放的书在最底下,最后放的书在最上面,然后你在一本一本的拿回来,不能抽书,结果是最后放的书是最先拿上来的,最后放的书最后拿到手里,即,后放先出,先放后出,这就是栈!
2.接着是递归,递归就是函数不停的调用自身,最终不满足基本条件跳出递归!例如
```python
#求和函数--递归实现
def sum(numlist):
if len(numlist