函数

1.关键字参数



函数定义时,形参以一般参数名形式定义:

(1)函数调用,实参为一般形式,则按照位置给对应实参赋值。

(2)函数调用,实参为关键字参数,实参的输入顺序没有影响,形参根据关键字赋值。

2.位置参数

函数定义时,新参以关键字参数形式定义:

(1)函数调用时,实参都为空,形参按照定义赋值。

(2)函数调用时,实参按序给出,新参按照实参位置对应赋值。

(3)函数调用时,实参乱序给出,实参要以关键字参数形式给出,未给出实参的,形参按照定义赋值。

3.收集参数

3.1函数定义时‘ * ’参数:将实参收集为元组,实参不能是关键字参数.

(1)‘ * ’ 将所有实参都放入同一个元组中,有几个实参就会形成几个元素的元组。


(2)‘ * ’ 将第二个及之后的所有实参都放入同一个元组中。


(3)未用关键字参数前,调用函数给定的参数从第二个到最后一个默认为name,所以提示丢失第三个参数num2。在使用关键字参数后,就能识别第三个参数了。

3.2函数定义时’** ‘参数:将实参收集为字典,实参必须是关键字参数形式.

(1)'**'收集实参必须是关键字参数形式,函数将所有实参收集到字典中。

(2)'**'收集实参必须是关键字参数形式,函数将第二个及之后所有实参收集到字典中。


(3)'**'收集实参必须是关键字参数形式,函数将第二个及之后第一个关键字参数前的实参收集到元组,该关键字参数及之后的所有实参收集到字典中。因为'*'不处理关键字参数,'**’只处理关键字参数。如果输入实参不对会报错。

(4)定义函数时:' ** '参数必须为函数的最后一个参数.



4.函数练习

4.1一次只能存储一个名字

解析这个例子:

init( )函数初始化字典为data={ ‘first’: { } , ’middle’ :{ }, ’last’ : { } }

lookup( )函数返回外层字典项k=lable对应的内层字典中k=name的v值。(观察init()知data[lable][name]为空)

store( )函数:由于data[lable][name]为空常为空,第一个print(people)为0。

由于for循环,名字由三部分组成,所以循环体执行三次,所以输出三次None。

经过store()函数处理后,data={'first':{'wang':'wang wei na'},'second':{'wei':'wang wei na',},'last':{'na':'wang wei na',}}

4.2 同时存储多个名字


store()函数处理第一个名字时,data['first']['wang']=0,data['second']['wei']=0,data['last']['na']=0,

data={'first':{'wang':'wang wei na'},'second':{'wei':'wang wei na',},'last':{'na':'wang wei na',}}

store()函数处理第二个名字时,data['first']['wan']=0,data['second']['']=0,data['last']['yu']=0,

data={'first':{'wang':'wang wei na','wan':'wan yu'},'second':{'wei':'wang wei na',' ':'wan yu'},'last':{'na':'wang wei na','yu':'wan yu'}}

store()函数处理第三个名字时,data['first']['wang']=1,data['second']['bao']=0,data['last']['bao']=0,

data={'first':{'wang':['wang wei na','wang bao bao'],'wan':'wan yu'},'second':{'wei':'wang wei na',' ':'wan yu','bao':'wang bao bao'},'last':{'na':'wang wei na','yu':'wan yu','bao':'wang bao bao'}}

其他名字一次处理。

4.3参数练习




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值