Python中的匿名函数——lambda函数
在Python中,lambda函数是一个简单的匿名函数。该函数没有函数名,它可以有多个参数,但函数只由一个表达式构成。
创新互联主营莲花网站建设的网络公司,主营网站建设方案,成都App定制开发,莲花h5小程序设计搭建,莲花网站营销推广欢迎莲花等地区企业咨询
lambda函数具体的格式如下:
lambda 参数 : 表达式
其中, lambda 是关键字, 参数 是函数的参数,可以有0至多个。冒号后面是表达式,也是该函数中的唯一的表达式,lambda函数会返回该表达式的返回值。
我们来看一个具体的例子。
在上述代码中,number1, number2是lambda函数的参数,number1**2+number**2是函数的表达式,该函数返回number1, number2两个数的平方和。
上述代码创建了一个lambda函数后将其赋值给变量sum_square, 在print函数中通过sum_square来调用这个lambda函数。
上述的lambda函数完全可用标准的函数来实现,我们可以将上述代码改写成下面的代码。
在代码中,定义了函数sum_square,该函数包含两个参数,并执行一条语句并将该语句的执行结果作为函数返回值。通过上述代码可以帮助我们更直观地理解lambda函数。
lambda函数的可读性较差,那么为什么要有这样奇怪的匿名函数呢?这个要从lambda的使用场合说起。我们来看下面的代码。
上述代码定义了一个数值列表,调用python的内置函数filter来生成一个新的迭代器。 filter函数的第一个参数为一个函数,用于决定过滤的方法;第二个参数为一个可迭代的对象如列表、集合等。filter函数返回一个新的迭代器, 用于获得满足第一个函数为真的所有元素。在上述代码中,我们给filter传递的第一个参数是一个匿名函数:lambda number:number%3==0, 该函数在一个数整除3时为True,否则为False. filter函数会创建一个新的迭代器,通过调用上述匿名函数来判断该元素是否满足条件,得到所有3的倍数的数。
当然,上述代码也可以使用正常的函数方式来实现,如下所示:
我们可以看到,所有匿名函数的功能都可以通过标准函数来实现。匿名函数常在调用其它函数(如filter, map等)时作为参数使用。使用匿名函数可以使代码更为精简。匿名函数主要用于完成简单的任务,如果匿名函数过于复杂,会导致可读性较差,调试起来也比较困难,因此,强烈不建议使用lambda写天书般的代码。总之,要根据实际情况决定是否使用匿名函数。
python函数深入浅出 12.os.getcwd()函数详解
os是python自带的系统模块,需要import使用
os 源于英文Operating System(操作系统)的缩写
cwd 则是源于Current Working Directory,中文意思是 当前工作目录
所以os.getcwd() 指获取当前工作目录
示例:
getcwd()方法语法格式如下:
总之,举例来讲,os.getcwd()、sys.path[0] (sys.argv[0])和 file 的区别是这样的:
假设目录结构是:
然后我们在C:\test下面执行
这时sub_path.py里面与各种用法对应的值其实是:
无
path的准确定位对于import包,读写文件都非常重要,
如果一时不能理解,可以在文件执行开头多加几个
print帮助我们确定那个路径是我们希望拿到的,然后将其设为全局变量就好了
对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇
pythonprint函数格式
python 3.0+
print(1)
1
print("Hello World")
Hello World
a = 1
b = 'world'
print(a,b)
1 world
print("aaa""bbb")
aaabbb
print("aaa","bbb")
aaa bbb
print("hello","world!",sep=",") # 设置间隔符
hello,world!
python函数高级
一、函数的定义
函数是指将一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需要调用函数名即可
特性:
减少重复代码
使程序变得可扩展
使程序变得易维护
二、函数的参数
2.1、形参和实参数
形参,调用时才会存在的值
实惨,实际存在的值
2.2、默认参数
定义:当不输入参数值会有一个默认的值,默认参数要放到最后
2.3、 关键参数
定义: 正常情况下,给函数传参数要安装顺序,不想按顺序可以用关键参数,只需要指定参数名即可,(指定了参数名的就叫关键参数),但是要求是关键参数必须放在位置参数(以位置顺序确定对应的参数)之后
2.4、非固定参数
定义: 如你的函数在传入参数时不确定需要传入多少个参数,就可以使用非固定参数
# 通过元组形式传递
# 通过列表形式传递
# 字典形式(通过k,value的方式传递)
# 通过变量的方式传递
三、函数的返回值
作用:
返回函数执行结果,如果没有设置,默认返回None
终止函数运行,函数遇到return终止函数
四、变量的作用域
全局变量和局部变量
在函数中定义的变量叫局部变量,在程序中一开始定义的变量叫全局变量
全局变量作用域整个程序,局部变量作用域是定义该变量的函数
当全局变量与局部变量同名是,在定义局部变量的函数内,局部变量起作用,其他地方全局变量起作用
同级的局部变量不能互相调用
想要函数里边的变量设置成全局变量,可用global进行设置
五、特殊函数
5.1、嵌套函数
定义: 嵌套函数顾名思义就是在函数里边再嵌套一层函数
提示 在嵌套函数里边调用变量是从里往外依次调用,意思就是如果需要调用的变量在当前层没有就会去外层去调用,依次内推
匿名函数
基于Lambda定义的函数格式为: lambda 参数:函数体
参数,支持任意参数。
匿名函数适用于简单的业务处理,可以快速并简单的创建函数。
# 与三元运算结合
5.3、高阶函数
定义:变量可以指向函数,函数的参数可以接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数称之为高阶函数 只需要满足一下任意一个条件,即是高阶函数
接收一个或多个函数作为输入
return返回另一个函数
5.4、递归函数
定义:一个函数可以调用其他函数,如果一个函数调用自己本身,这个函数就称为递归函数
在默认情况下Python最多能递归1000次,(这样设计师是为了防止被内存被撑死)可以通过sys.setrecursionlimit(1500)进行修改
递归实现过程是先一层一层的进,然后在一层一层的出来
必须有一个明确的条件结束,要不然就是一个死循环了
每次进入更深层次,问题规模都应该有所减少
递归执行效率不高,递归层次过多会导致站溢出
# 计算4的阶乘 4x3x2x1
# 打印数字从1-100
5.5、闭包现象
定义:内层函数调用外层函数的变量,并且内存函数被返回到外边去了
闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域
本文题目:python函数详细格式的简单介绍
网页路径:http://lswzjz.com/article/hdhisg.html