python中函数总结(《python与数据挖掘》)

1.创建函数

1.1 def语句

语法如下:

def fun_name(par1, pa2, …):
	print("hello,world")

Python可以没有返回值,可以有一个返回值,也可以有多个返回值,返回值的数据类型没有限制。

1.2. lambda语句

Python允许使用lambda语句创建匿名函数。
使用lambda省去了定义函数的过程,代码变得精简。对于一些抽象的、不会在其他地方复用的函数,有时候给函数命名也是个难题(需要避免函数重名),而使用lambda则不需要考虑函数命名的问题。
lamber语句中,冒号前是函数参数,若有多个函数使用逗号分隔,冒号右边是返回值。如此便构建了一个函数对象,def语句也是创建一个函数对象,只是lambda创建的函数对象没有名字。
使用lamber函数应该注意下面4点:
1)lambda定义的是单行函数,如果需要复杂的函数,应使用def语句。2)lamdda参数列表可以包含多个函数,如lambda x, y : x+y 。
3)lambda语句有且只有一个返回值。
4)lambda语句中的表达式不能含有命令,而且仅限一条表达式。

2.函数参数

参数这个词是指你交给函数的一条信息。我们把这称为:你向函数传递参 数。
Python中的函数参数主要有3种形式,分别是:
1)位置或关键字参数。
来自《python与数据挖掘》一书
2)任意数量的位置参数。
任意数量的位置参数在定义的时候是需要一个星号前缀来表示的,在传递参数的时候,可以在原有参数的后面添加0个或多个参数,这些参数将会被放在元组内并传入函数。任意数量的位置参数(一个星号前缀)必须定义在位置或关键字参数(无须星号)之后,且在任意数量的关键字参数(两个星号前缀)之前。
来自《python与数据挖掘》一书
3)任意数量的关键字参数。
任意数量的关键字参数在定义的时候,参数名称前面需要有两个星号(**)作为前缀,这样定义出来的参数,在传递参数的时候,可以在原有的参数后面添加任意0个或多个关键字参数,这些参数会被放到字典内并传入到函数中。带两个星号前缀的参数必须定义在所有带默认值的参数之后。
在这里插入图片描述

3.可变对象和不可变对象

Python函数的参数都是对象的引用.
如果在引用不可变对象中尝试修改对象,程序会在函数中生成新的对象,函数外被引用的对象则不会被改变。
在这里插入图片描述如果我们希望赋值时可变对象不进行引用,而是重新分配地址空间并将数据复制,我们可以利用Python的copy模块。其中主要的函数有copy.copy和copy.deepcopy。
1)copy.copy仅仅复制父对象,不会复制父对象内部的子对象。2)copy.deepcopy复制父对象和子对象
在这里插入图片描述上图中list3为浅复制,所以没有复制子对象,list1中的[‘a’,‘b’]还是指向list1中的[‘a’,‘b’],所以list1[2].append(‘c’)后,list3中也会变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值