递归函数和匿名函数的使用介绍 | 手把手教你入门Python之四十四

简介: 本节重点介绍递归函数,匿名函数

上一篇:详解函数返回值和参数 | 手把手教你入门Python之四十三
下一篇:详解高阶函数和闭包 | 手把手教你入门Python之四十五

本文来自于千锋教育在阿里云开发者社区学习中心上线课程《Python入门2020最新大课》,主讲人姜伟。

递归函数

<1>什么是递归函数

通过前⾯的学习知道⼀个函数可以调⽤其他函数。
如果⼀个函数在内部不调⽤其它的函数,⽽是⾃⼰本身的话,这个函数就是递归函数。

<2>递归函数的作⽤

举个例⼦,我们来计算阶乘 n! = 1 2 3 ... n
解决办法1:使⽤循环来完成

def cal(num):
 result,i = 1,1
 while i <= num:
 result *= i
 i+= 1
 return result
print(cal(3))

看阶乘的规律

1! = 1
2! = 2 × 1 = 2 × 1!
3! = 3 × 2 × 1 = 3 × 2!
4! = 4 × 3 × 2 × 1 = 4 × 3!
...
n! = n × (n-1)!

解决办法2:使⽤递归来实现

def factorial(num):
 result = 1
 if num == 1:
 return 1
 result = num * factorial(num -1)
 return result
print(cal(3))

原理

image.png

练习

使⽤递归实现斐波那契数列。1、1、2、3、5、8、13、21、34、……

image.png

image.png

image.png

递归的练习

image.png
image.png

image.png

匿名函数

⽤lambda关键词能创建⼩型匿名函数。这种函数得名于省略了⽤def声明函数的标准步骤。
lambda函数的语法只包含⼀个语句,如下:

lambda 参数列表: 运算表达式

如下实例:

sum = lambda arg1, arg2: arg1 + arg2
# 调⽤sum函数
print("Value of total : %d" % sum( 10, 20 ))
print("Value of total : %d" % sum( 20, 20 ))

以上实例输出结果:

Value of total : 30
Value of total : 40

Lambda函数能接收任何数量的参数但只能返回⼀个表达式的值
匿名函数可以执⾏任意表达式(甚⾄print函数),但是⼀般认为表达式应该有⼀个计算结果供返回使⽤。
python在编写⼀些执⾏脚本的时候可以使⽤lambda,这样可以接受定义函数的过程,⽐如写⼀个简单的脚本管理服务器。

image.png
image.png

自定义一个匿名函数的使用场景

image.png
image.png

应用场合

函数作为参数传递

>>> def fun(a, b, opt):
... print("a = " % a)
... print("b = " % b)
... print("result =" % opt(a, b))
...
>>> add = lambda x,y:x+y
>>> fun(1, 2, add) # 把 add 作为实参传递
a = 1
b = 2
result = 3

练习:
有⼀个列表

students = [
 {'name': 'zhangsan', 'age': 18, 'score': 92},
 {'name': 'lisi', 'age': 20, 'score': 90},
 {'name': 'wangwu', 'age': 19, 'score': 95},
 {'name': 'jerry', 'age': 21, 'score': 98},
 {'name': 'chris', 'age': 17, 'score': 100},
]

要求,对上述列表⾥的数据按照score进⾏升序排序。

Sort方法的使用

image.png

image.png
image.png

Python中使⽤函数作为参数的内置函数和类:

image.png

Filter&map&reduce方法

image.png

map的使用

image.png

reduce的使用

image.png
image.png
image.png

内置函数总结

image.png

image.png
image.png

相关文章
|
21天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
26天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
27天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
127 67
|
21天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
44 18
|
12天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
42 8
|
22天前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
22天前
|
Python
Python中的函数
Python中的函数
35 8
|
21天前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
37 7
|
23天前
|
开发者 Python
Python中的装饰器:从入门到实践
本文将深入探讨Python的装饰器,这一强大工具允许开发者在不修改现有函数代码的情况下增加额外的功能。我们将通过实例学习如何创建和应用装饰器,并探索它们背后的原理和高级用法。
35 5
|
22天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
55 3