递归函数
定义
1.定义:函数自己调用自己
2.形成条件:
(1)函数自己调用自己
(2)必须有一个终止条件
实例
# 已知室内每人相差三岁,第一个人18岁,求第6个人的年龄。
# 定义函数
def two_age(n=6):
# 判断是否为第一个人
if n == 1:
return 18
# 求第n个人的年龄,只需要n-1这人的年龄 + 2
# 再次调用函数two_age
age = two_age(n - 1) + 3
# 返回结果
return age
# 调用函数
print(two_age())
# 求阶乘
# 定义函数
def func2(n):
# 若n=1则直接输出
if n == 1:
return 1
# 想要求n的阶乘,只需要n-1的阶乘*n
# 再次调用函数求n-1值
num = func2(n - 1) * n
# 返回n值
return num
# 输出调用函数,带入n值为5
print(func2(5))
匿名函数
定义
使用 lambda 关键字定义的函数就是匿名函数
语法格式:lambda[形参1],[形参2],…:[单行表达式]或[函数调用]
注意
1.匿名函数不能使用if语句、while、for循环语句,只能编写单行表达式或普通函数
2.匿名函数不需要使用return,其运行结果就是return
3.匿名函数也可以直接输出 lambda : print(‘hello world’)
# 无参无返回值
# 定义函数
f1 = lambda: print("hello lambda")
# 调用函数
f1()
# 结果:hello lambda
# 无参有返回值
f2 = lambda: 1 + 2
print(f2())
# 结果:3
# 有参无返回值
f3 = lambda name: print(name)
f3("python基础")
# 结果:python基础
# 有参有返回值
f4 = lambda *args: args
print(f4("asf", "asf", "age"))
实例:
# 定义函数
def my_calc(a, b, func):
"""
进行四则运算
:param a:第一个数据
:param b:第二个数据
:param func:函数要进行的运算
:return:运算结果
"""
# 返回结果分割符
print("——————————————————")
# 调用函数add
num = func(a, b)
# 输出结果
print(num)
# 定义函数add
def add(a, b):
return a + b
# 调用
my_calc(10, 20, add)
# 带入lambda函数,执行运算
my_calc(10, 20, lambda a, b: a - b)
my_calc(10, 20, lambda a, b: a * b)
my_calc(10, 20, lambda a, b: a / b)
my_calc(10, 20, lambda a, b: a + b ** 2)
# 结果:
————————————————
30
————————————————
-10
————————————————
200
————————————————
0.5
————————————————
410