Python基础知识学习06:函数加强及练习

本文探讨了Python中的递归编程思想,详细介绍了递归的作用、特点及应用练习,强调了设置递归出口的重要性。同时,文章讲解了lambda函数的用途、语法和参数,展示了如何通过lambda简化代码并节约内存。通过实践,作者揭示了lambda表达式的内存地址输出特性。
摘要由CSDN通过智能技术生成

1、了解递归

1.1递归的作用

① 递归作为一种编程思想, 在我们日常开发中,若需要遍历一个文件夹下面所有的文件,为了化简代码,更加高效,通常会使用递归来实现;

② 帮我们完成一写高级算法,例如:快速排序等。

1.2  递归的特点

函数内部自己调用自己,且必须要有出口。

1.3 应用练习 体会递归

# 应用练习:求解3以内数字累加和:3 + 2 + 1 

# 6 = 3 + 2以内数字累加和
# 2以内数字累加和 = 2 + 1以内数字累加和
# 1以内数字累加和 = 1

def sum_numbers(num):
    # 1.如果是1,直接返回1 -- 出口
    if num == 1:
        return 1
    # 2.如果不是1,重复执行累加:当前数字 + 当前数字-1累加和
    result = num + sum_numbers(num-1)
    # 3.返回累加结果
    return result
sum_result = sum_numbers(3) 
print(sum_result)

# 体会递归特点:函数内部自己调用自己;必须要有出口。

练习后发现若未设置出口,执行后会报错:超出最大递归深度,因此在以后的递归书写中要注意书写递归的出口。 

2、lambda

2.1 作用

简化代码量,节省计算机的内存开销。如果一个函数有一个返回值,并且只有一句代码,可以使用 lambda简化。

2.2 lambda语法

lambda 参数列表 : 表达式

需要注意的是:

① lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用。

② lambda函数能接收任何数量的参数但只能返回一个表达式的值。

应用练习:

# 练习:返回数100
# 1、函数 
def fn1():
    return 100

print(fn1)
print(fn1()) 


# 2、lambda表达式  匿名函数
# lambda 参数列表 : 表达式
fn2 = lambda: 100 
print(fn2)   #返回的是lambda内存地址

# 100返回值,调用函数
print(fn2()) 

通过练习后对比发现,lambda表达式可以简化代码量;直接打印lambda表达式,输出的是此lambda的内存地址。

2.3 lambda 参数

lambda的参数形式与之前所学的函数参数函数的参数介绍及使用基本一致,这里作回顾总结。

# lambda 参数
# 1、无参数
fn1 = lambda: 100
print(fn1())

# 2、一个参数
fn2 = lambda a: a
print(fn2('Python'))

# 3、默认参数/缺省参数
fn3 = lambda a, b, c = 10: a + b + c
print(1, 2)
print(1, 2, 3)

# 4、可变参数*args 
fn4 = lambda *args: args
print(fn4(10, 20))
print(fn4(10, 20, 30, 40))
# 注意:这里的可变参数传入到lambda之后,返回值为元组。

# 5、可变参数**kwargs
fn5 = lambda **kwargs: kwargs
print(fn5(name='lisa'))
print(fn5(name='Lisa', age=18))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值