递归:
1.是一个函数
2.函数执行的过程中,自己调用自己
3.递归一定有结束调用自己的条件
4.递归效率不高
5.什么问题必须用递归?汉诺塔
示例:
>>> def print_str(n):
... if n<0:
... return
... print("*:",n)
... print_str(n-1)
...
>>> print_str(10)
*: 10
*: 9
*: 8
*: 7
*: 6
*: 5
*: 4
*: 3
*: 2
*: 1
*: 0
>>> def print_str(n):
... if n==0:
... return n
... return n+print_str(n-1)
...
>>> print_str(3)
6
>>> def print_str(n):
... if n<0:
... return n
... print('*:',n)
... print_str(n-1)
...
>>> print(print_str(5))
*: 5
*: 4
*: 3
*: 2
*: 1
*: 0
None