递归
递归:在函数内部,可以调用其他函数。
如果函数在内部调用自身本身,则这个函数就是递归函数;
递归特性:
- 1、必须有明确结束条件
- 2、最大递归999层
- 3、每次进入更深递归时,问题规模应比上次递归少
- 4、递归效率不高,递归层次过多会导致栈溢出
#递归
def calc(n)
print(n)
return calc(n+1)
calc(0)
························
#通过递归,使一个数一直除以2,直到不能除为止
def calc(n)
print(n)
if int(n/2) > 0:
return calc(int(n/2))
print("---->",n)
>> 10
>> 5
>> 2
>> 1
>> ----> 1
局部变量与全局变量
注:不要在函数内修改全局变量;
更不要在函数内定义全局变量!!!
当全局变量与局部变量重名时,子程序内局部变量起作用,其他地方全局变量起作用
高阶函数
一个函数可以接受另一个函数作为变量,则该函数称为高阶函数
def add(a,b,f):
return f(a)+f(b)
res = add(3,-6,abs) # abs(-5) = 5
print(res)
>> 9