python基础语法2--函数:递归函数,匿名函数

目录

一、递归函数

1.递归函数的特点

2.练习

二、lambda函数(匿名函数)

1.lambda的作用以及应用条件

2.lambda语法

3.lambda的参数形式

1)无参数

2)有参数

i)一个参数

ii)默认参数

iii)可变参数 *args

iiii)可变参数 **kwargs

4.lambda的应用

1)带判断的lambda

2)列表数据按照字典的键值排序


一、递归函数

1.递归函数的特点

1)函数自己调用自己

2)必须有出口

2.练习

# 求第n个斐波那契数
# 1 1 2 3 5 8 13

# 解答
def Fibonacci(n):
    if n == 1 or n == 2:
        return 1
    return Fibonacci(n-1)+Fibonacci(n-2)

二、lambda函数(匿名函数)

1.lambda的作用以及应用条件

作用:简单来说,lambda的存在大多是为了简化代码

应用条件:如果函数只要一个返回值并且只有一句代码,就可以使用lambda简化

2.lambda语法

lambda 参数列表: 表达式

# 计算a+b
# 1.函数实现
def add(a,b):
    return a+b

result = add(1,2)
print(result)

# 2.lambda实现

fn1 = lambda a,b:a+b
print(fn1(1,2))

3.lambda的参数形式

1)无参数

fn1 = lambda:100
print(fn1())

2)有参数

i)一个参数
fn1 = lambda a:a
print(fn1('hello world'))
ii)默认参数
fn1 = lambda a, b, c=100: a + b + c
print(fn1(10,20))
iii)可变参数 *args

接收不定长的位置参数,返回值为元组

fn1 = lambda *args: args
print(fn1(10,20,30))

返回:(10,20,30) 

iiii)可变参数 **kwargs

接收不定长的关键字参数,返回值为字典

fn1 = lambda **kwargs: kwargs
print(fn1(name='python',age=18))

返回:{name='python,age=18}

4.lambda的应用

1)带判断的lambda
 

fn1 = lambda a, b :a if a>b else b
print(fn1(1000,500))

2)列表数据按照字典的键值排序

students = [
    {'name':'JRN','age':20},
    {'name':'KEEN','age':18},
    {'name':'Bay','age':21}]
# 按name值升序排列
students.sort(key=lambda x: x['name'])
print(students)

# 按name值降序排列
students.sort(key=lambda x: x['name'], reverse=True)
print(students)

# 按age值升序排列
students.sort(key=lambda x: x['age'])
print(students)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值