回顾上一章节的内容: Python中函数的介绍
废话不多说,接下来简单记录一下关于函数这块,之前没怎么关注过的一些知识点,让我们一起来往下学习。
一、函数是一个对象,函数可以被修改名字、可以传递、可以被删除。
直接通过下面的代码看效果进行理解:
`def sayhi():`
`print("hello world")`
`test = sayhi`
`print(test)`
`print(sayhi)`
`test()`
`sayhi()`
`del test`
`sayhi()`
`test()`
二、函数的返回值可以是函数
`def func(*args, **kwargs):`
`def add(a, b):`
`return a + b`
`return add`
`new_func = func()`
`print(new_func(1, 2))`
具体的就不多解释了,通过上面的案例去进行理解。说实话,以前我还真没这么写过,又接触到了一种新的用法。
三、匿名函数
在Python中,匿名函数可以通过lambda关键字定义,其语法格式为:
`lambda arguments: expression`
匿名函数可以有多个参数,通过冒号后面的表达式来定义函数体。与普通函数不同的是,匿名函数没有函数名,并且只能包含单个表达式。
以下是几个使用匿名函数的实例,以展示其简洁、灵活和实用之处。
1、使用匿名函数对列表进行排序:
my_list = [5, 2, 8, 1, 9]
sorted_list = sorted(my_list, key=lambda x: x)
print(sorted_list) # 输出:[1, 2, 5, 8, 9]
2、使用匿名函数进行简单的数学计算:
add = lambda x, y: x + y
result = add(3, 5)
print(result) # 输出:8
3、使用匿名函数进行元素筛选:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_list = list(filter(lambda x: x % 2 == 0, my_list))
print(filtered_list) # 输出: [2, 4, 6, 8, 10]
四、函数递归调用
递归是一种算法或函数自我调用的过程,它在解决问题时能够简洁、优雅地表达思想。通过递归调用,函数可以重复执行相同的操作,但在每次调用中处理的数据规模会逐渐减小,直到达到某个基本条件而停止。
案例演示:
1、计算阶乘
阶乘是指将一个非负整数 n 乘以所有小于等于它的正整数的乘积。
例如,5的阶乘(表示为5!)等于5 * 4 * 3 * 2 * 1,结果为120。
`def factorial(n):` `if n == 0:` `return 1` `else:` `return n * factorial(n-1)`
2、计算斐波那契数列
斐波那契数列是一个由 0 和 1 开始,后续每一项都是前两项之和的数列。例如,斐波那契数列的前几项为 0、1、1、2、3、5、8、13 等。
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
End
想进学习交流群、同行一起探讨交流、需要学习资料的可以加我好友(xiaobotester),如果觉得文章对你有帮助的话,欢迎点赞转发~
👇👇👇
关注公众号,测试干货及时送达
往期 精彩回顾
Python里面怎么判断某个字符串是否包含列表中的某一个元素
Python中类的属性、多继承、自省机制中的__mro__、__dict__ 和dir介绍