python开发之路---第二章之--函数之其余内容

函数的递归

1 def func(x):
2 
3     print(x)
4     func(x+1)
5 
6 func(1)

# 打印结果是1~999,限制递归次数,否则会把栈撑满

## 递归的栗子

 1 def func(x):
 2 
 3     v = int(x / 2)
 4     if v != 0:
 5         print (v)
 6     else:
 7         return 'over'
 8     func(v)
 9 
10 a = func(10)
11 
12 print (a)
 1 ##阶乘
 2 
 3 def func(x):
 4     if x == 1:
 5         return 1
 6     return x * func(x-1)
 7 
 8 
 9 a = func(10)
10 
11 print (a )

## 总结

1、递归必须有一个明确的结束条件,不然死循环后,系统就报错了

2、每次进入新的一层递归时,问题规模需要相应减少

3、递归效率不高,过多递归层次会导致栈溢出

猜你喜欢

转载自www.cnblogs.com/LoveElsa/p/10280224.html