python 函数

函数

函数就是实现了一定功能的代码块。

#函数的定义
def calc(x,y):
   "用于说明函数"
    res = x * y
    return res
#函数的调用
print(calc(1,2))

def 定义函数,calc函数名,x,y参数,没有定义函数的返回值,则会返回None。

返回多个值是,会将返回的值写入到一个元组中,然后将元组返回。

"""
形参只有在被调用时才分配内存,调用结束后。即刻释放所分配的内存单元,因此,形参只有在函数内部有效
函数调用结束后则不能在使用该形参变量。

实参可以是常量,变量,表达式,函数等,无论实参是何种类型的量,在进行函数调用时,他们都必须有确定的值。
以便把这些值传给形参,因此应预先用赋值,输入等办法使参数获得确定值。

位置参数和关键字(标准调用:实参和形参一一对应;关键字调用:位置无需固定)
位置参数:
test(1,2,3)
关键字:
test(x=1,z=3,y=2)
混合:位置参数必须在混合参数左边
test(1,3,z=2)

默认参数
参数组:**字典 *列表

"""
def calc(x,y):
    res = x * y
    return res

print(calc(1,2))


def test(x,y,z):
    print(x,y,z)
test(1,2)#报错,x=1.y=2,z无赋值,缺少一个赋值。
test(1,2,3)#位置参数必须一一对应,缺一不可。
test(x = 1,z = 2,y = 3)#关键字,不需要一一对应,缺一不可。
test(1,2,z = 3)#混用的情况,位置参数必须在关键字参数之前。
test(1,2,y = 3)#x=1,y=2,y=3,给y值赋予了多个值,未给z赋值。
test(1,2,y=3,z=2)#y=2,y=3,给y赋予了多个值。

def handle(x,type="string"):#默认参数,若执行时未给type赋值,默认type的值为string
    print(x)
    print(type)
handle(1 ,'a')#会将a付给type。

#参数组:*列表 不论传什么类型,多少个值,都会将其以元组的方式赋值。
def test(x,*args):
    print(x)
    print(args)
test(1,2,3,4,5,6)
test(1,[1,2,3])#会将[1,2,3]作为一个整体数据传给args,成为args的一个元素。
test(1,{"x" : 1 ,"y" : 2})#会将{"x" : 1 ,"y" : 2}作为一个参数传递给args。
test(1,*[1,2,3])#如果要列表中的元素作为每一个元素存进args,必须标记*
test(1,*{"x" : 1 ,"y" : 2})#会遍历{"x" : 1 ,"y" : 2}传递给args,因为默认遍历获取的为字典的key,所以会将每个元素的key作为一个元素存入args元组。

#想向函数内传递不确定数量的值,参数必须为可扩展性参数。
def test(x,y):
    print(x)
    print(y)
test(1,*(1,2,3,4))


#**kwargs 字典
def test(x,**kwargs):
    print(x)
    print(kwargs)
test(1,y = 2,z = 3)


def test(x,*args,**kwargs):
    print(x)
    print(args)
    print(kwargs)
test(1,2,3,4,y = 2 ,z = 3)
test(1,*(1,2,3,4),**{ "z" : 2})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值