1.函数的递归
#阶乘计算
# 必须设置函数终止条件
# 使用递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出
def fact(n):
if n == 1:
return 1
return n * fact(n - 1)
print(fact(4))#24
2.函数的回调
# 通过向函数里传入已定义的不同功能的函数名来使用不同的功能函数
def add(x,y):
return x + y
def multiply(x,y):
return x * y
def use(func,x,y):
return func(x,y)
print(use(add,1,2))
print(use(multiply,1,2))
3.函数作用域
#global:在函数内部修改函数外部的值,需要在函数内用gloabal声明需要修改的变量
#nonlocal:在多层函数嵌套的情况下在里层函数里修改外层函数里面的变量值
# 1.外部不能访问函数内部变量
# 2.函数内部能够访问函数外部变量
# 3.函数里面不能修改函数外部变量(若要修改须声明global x x = n)
# 4.函数里面和函数外部变量名相同