Python程序设计基础教程(微课版第2版)6.4 参数类型_第1页
Python程序设计基础教程(微课版第2版)6.4 参数类型_第2页
Python程序设计基础教程(微课版第2版)6.4 参数类型_第3页
Python程序设计基础教程(微课版第2版)6.4 参数类型_第4页
Python程序设计基础教程(微课版第2版)6.4 参数类型_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python函数的参数的几种类型和实例参数类型CHAPTER601位置参数02

关键字参数03默认参数CONTENTS目

录04不定长参数05

特殊形式06参数传递的序列解包CONTENTS目

录参数类型

位置参数>>>#定义一个函数,其有两个位置参数>>>defrequired_param(p1,p2):print(p1,p2)return>>>

#调用函数,缺少2个参数>>>required_param()Traceback(mostrecentcalllast):File"<pyshell#9>",line1,in<module>required_param()TypeError:required_param()missing2requiredpositionalarguments:'p1'and'p2'>>>#调用函数,缺少1个参数>>>required_param("astring")Traceback(mostrecentcalllast):File"<pyshell#11>",line1,in<module>required_param("astring")TypeError:required_param()missing1requiredpositionalargument:'p2'>>>

#调用函数,提供2个参数>>>required_param("Hello","World")HelloWorld对于定义的【位置参数】,在函数调用时必须有,且顺序和数量都要保持一致参数类型

关键字参数“关键字参数”在函数调用时,参数的传入使用了参数的名称,则该类参数称为“关键字参数”允许函数参数的顺序与声明不一致因为Python解释器能够用参数名匹配参数值关键字参数必须在位置参数后面在函数调用中,多个关键字参数的顺序可以随意,但关键字参数必须跟随在位置参数的后面参数类型>>>#定义一个函数,有1个位置参数、2个关键字参数>>>defkey_param(p1,kp1,kp2): print(p1,kp1,kp2) return>>>#调用函数>>>key_param("p1",kp2="kp2",kp1="kp1")p1kp1kp2【例】

关键字参数必须跟随在位置参数的后面,实例如下参数类型>>>#定义一个函数,有1个位置参数、2个关键字参数>>>defkey_param(p1,kp1,kp2): print(p1,kp1,kp2) return>>>#调用函数>>>key_param("p1",kp2="kp2",kp1="kp1")p1kp1kp2【例】

关键字参数必须跟随在位置参数的后面,实例如下kp1、kp2关键字参数参数类型>>>#定义一个函数,有1个位置参数、2个关键字参数>>>defkey_param(p1,kp1,kp2): print(p1,kp1,kp2) return>>>#调用函数>>>key_param("p1",kp2="kp2",kp1="kp1")p1kp1kp2【例】

关键字参数必须跟随在位置参数的后面,实例如下p1是位置参数参数类型>>>#定义一个函数,有1个位置参数、2个关键字参数>>>defkey_param(p1,kp1,kp2): print(p1,kp1,kp2) return>>>#调用函数>>>key_param("p1",kp2="kp2",kp1="kp1")p1kp1kp2【例】

关键字参数必须跟随在位置参数的后面,实例如下【

p1必须有,kp1、kp2顺序可随意】参数类型>>>#定义一个函数,有1个位置参数、2个关键字参数>>>defkey_param(p1,kp1,kp2): print(p1,kp1,kp2) return>>>#调用函数>>>key_param(p1="p1",kp2="kp2",kp1="kp1")p1kp1kp2【例】

关键字参数必须跟随在位置参数的后面,实例如下参数类型>>>#定义一个函数,有1个位置参数、2个关键字参数>>>defkey_param(p1,kp1,kp2): print(p1,kp1,kp2) return>>>#调用函数>>>key_param(p1="p1",kp2="kp2",kp1="kp1")p1kp1kp2【例】

关键字参数必须跟随在位置参数的后面,实例如下p1关键字参数参数类型>>>#定义一个函数,有1个位置参数、2个关键字参数>>>defkey_param(p1,kp1,kp2): print(p1,kp1,kp2) return>>>#调用函数>>>key_param(kp2="kp2",p1="p1",kp1="kp1")p1kp1kp2【例】

关键字参数必须跟随在位置参数的后面,实例如下都是关键字参数参数类型

默认参数没传递该参数使用默认值该参数是默认参数则使用默认值参数类型01#param1.py02#定义一个函数03#某社团纳新,会员一般为大一学生04defnew_member(name,student_id,grade="大一"):05print("姓名",name)06print("学号",student_id)07print("年级",grade)08print("---------------------------")09return1011#调用函数12new_member("张三","0001")13new_member("李四","0002","大二")【例6-15】某学生社团纳新的会员管理,在函数定义中使用默认参数参数类型

位置参数执行结果姓名张三学号0001年级大一---------------------------姓名李四学号0002年级大二---------------------------默

数参数类型>>>gradeone='大一'>>>deffunc(grade=gradeone): print(grade)>>>gradeone='大二'>>>#函数调用>>>func()大一【例】默认参数在函数定义时就计算参数类型>>>gradeone='大一'>>>deffunc(grade=gradeone): print(grade)>>>gradeone='大二'>>>#函数调用>>>func()大一【例】默认参数在函数定义时就计算函数定义就确定的值参数类型

不定长参数如果希望函数参数的个数不确定时,需要用不定长参数不定长参数*parameter和**parameter不定长函数的定义方式前者接收多个实参并放在一个元组中后者是接收键值对并将其放在字典中两种定义方式参数类型

不定长参数deffunctionname([formal_args,]*var_args_tuple):function_suitereturn[expression]两种定义方式的基本语法【方式一】【方式二】deffunctionname([formal_args,]**var_args_dict):function_suitereturn[expression]参数类型01#param2.py02#定义函数03defcal_sum(*a):04

sum=005

foreleina:06

sum+=ele07

returnsum0809#调用函数10print(cal_sum(1,2))11print(cal_sum(1,2,3,4))【例6-16】不定长参数示例-对所有数字参数求和

不定长参数参数类型01#param2.py02#定义函数03defcal_sum(*a):04

sum=005

foreleina:06

sum+=ele07

returnsum0809#调用函数10print(cal_sum(1,2))11print(cal_sum(1,2,3,4))【例6-16】不定长参数示例-对所有数字参数求和

不定长参数310结果参数类型01

#param3.py02

#函数定义03

defuserinfo(**p):04

print(p)05

fork,vinp.items():06

print(k,":",v)0708

#函数调用09

userinfo(name='zhangsan',id='0001',sex='male')10

print("====================================================")11

userinfo(name='lisi',id='0002',sex='female')12

print("====================================================")13

userinfo(name='wangwu',id='0003',sex='female')【例6-17】使用不定长参数,实参传递进函数后被转变为字典类型参数类型{'name':'zhangsan','id':'0001','sex':'male'}name:zhangsanid:0001sex:male===================================================={'name':'lisi','id':'0002','sex':'female'}name:lisiid:0002sex:female===================================================={'name':'wangwu','id':'0003','sex':'female'}name:wangwuid:0003sex:female【例6-17】实参传递进函数后被转变为字典类型,执行结果参数类型特殊形式确保可读性运行效率Python限制参数传递形式通过在函数定义的参数列表中增加“/”或“*”来确定参数项是仅按位置、按位置也按关键字,还是仅按关键字传递参数类型deff(pos1,pos2,/,pos_or_kwd,*,kwd1,kwd2):------------------------------------------①②③①仅允许位置参数(Positionalonly)②可位置参数或关键字参数(Positionalorkeyword)③仅允许关键字参数(Keywordonly)【例】

为函数定义参数列表中增加“/”或“*”的相关语法和规定参数类型

位置参数030201参数传递的类型可以是位置参数或关键字参数未使用“/”和“*”“/”前形参仅限位置参数,函数调用时实参

应与形参对应,不能按照关键字参数来传递定义中使用“/”其后的形参为仅限关键字参数定义中使用“*”参数类型列表元组集合1234字典作为【实参】进行参数传递参数类型>>>deffunc(p1,p2,p3):

#形参列表中有多个位置参数

print(p1,p2,p3)

return>>>list1=["a1","a2","a3"]>>>func(*list1)#对列表进行解包a1a2a3>>>tup1=("a1","a2","a3")>>>func(*tup1)#对元组进行解包a1a2a3>>>dict={'a':1,'b':2,'c':3}【例】在实参名称前加星号(*),解释器会将实参进行解包操作参数类型>>>func(*dict)#对字典的键进行解包abc>>>func(*dict.values

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论