总结Python函数参数的六种类型_第1页
总结Python函数参数的六种类型_第2页
总结Python函数参数的六种类型_第3页
全文预览已结束

下载本文档

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

文档简介

总结Python函数参数的六种类型⽬录⼀、函数的单参数传递⼆、多参数传递三、关键字参数四、缺省参数五、不定长参数-元组六、不定长参数-字典前⾔:Python函数之所以很好⽤,还有⼀点就的能传递参数实现不同场景的灵活使⽤,对于函数参数的类型⼩编总结了6种不同的形式。下⾯来⼀⼀学习下。⾸先来⼀个问题:使⽤⼀个函数来打印3*2,3*3,3*4的结果。正常情况下⼤家可能直接封装⼀个函数,在函数体内来完成这三个数的乘法,如下:defp_num():print(3*2)print(3*3)print(3*4)p_num()返回结果:6912上⾯的结果实现了题⽬要求,这时候如果再来⼀个问题:⽤⼀个函数输出5*2,5*3,5*4的结果。这时候你就会发现,你必须再封装⼀个函数来实现这样的效果,但是很多同学会发现,这个效果和我们上⾯的效果很相似。有的同学就会想到,第⼀题函数中的3我们可不可以⽤⼀个变量来代替,恭喜你,python也是这样想的,所以就引⼊参数这个概念,我们来看看python是怎么实现的吧。⼀、函数的单参数传递defp_num(n设置⼀):个形参n#print(n*2)print(n*3)print(n*4)p_num(5)传递实参#为5上⾯函数中的n就是形参,你也可以把它理解为⼀个变量名,调⽤函数的时候⼩括号中要传⼊实参,你可以把他理解为给上⾯形参(变量)赋的值。这样你给n赋什么值,那函数体内参与运算的就是什么值,这样⼀来我们就能实现不同的数字实现上⾯的相同的⽅法了,⼀个函数搞定。⼆、多参数传递换种情况,如果我们想得到两个数字相乘和相减的值,⽽且在不同的场景中这两个数会随时变化,那⼜怎么实现呢?估计有同学已经想到了,只要把上⾯的函数中⼀个形参变成两个就可以了,是的,就是这样的。下⾯来演⽰⼀下:deftest():print(5*3)print(5-3)test()#固1.定参数deftest(m,n):print(m*n)print(m-n)test(5,3)test(985,211)三、关键字参数通过⼀个函数把⼀个字符串反复输出n次,注意这⾥的n代表未知次数,字符串也是未知字符串,我们从这个题⽬就可以看出来,⼀定属于⼀个多参数函数。那么很简单就实现了,如下:deftest(num,str):print(str*num)test('',5)这时候⼤家可以看到输出的结果也是正确的,但是我们本⾝是想把num=5str='',⽽函数⾥⾯的参数是按照顺,序穿进去的,所以虽然结果没有问题,但是在有些场景中会出现不必要的错误,⽐如,我们要对字符串str进⾏处理后再计算,就不⾏了,这时候,python引⼊关键字参数来指定形参和实参的关系。deftest(num,str):print(str*num)test(str='',num=5)四、缺省参数这时候出现另⼀种场景,就是上⾯的字符串在⼤多数情况下都是,偶尔会出现其他字符串的情况,如果使⽤上⾯关键字参数的话,每次都要输⼊⼀下固定值,这样写起来⽐较⿇烦,所以看看缺省参数是怎么解决这个问题的。deftest(num,str=''):print(str*num)test(num=5)test(num=5,str='www')这⾥的缺省参数也可以说成默认值参数,就是不传递参数的时候⽤⾃⼰的默认值,传递参数的时候使⽤传递进去的实参。五、不定长参数-元组如果⼀个函数不知道未来要接收多少个参数的时候可以使⽤⼀个元组来接受不定长参数,下⾯来直接实现效果:deftest(*m):这⾥加了⼀个*#号,当成元组的形式来接受参数,⼀般写成:*argsprint(m)注意这⾥#的形参不能带*号print(type(m))test((3,5,7))test(3,5,7)注意这⾥两个调⽤的结果都是元组,但是结果不太⼀样,看看返回结果:((3,5,7),)<class'tuple'>(3,5,7)<class'tuple'>六、不定长参数-字典还有⼀种情况就是每个参数都⽤⾃⼰的含义,但是不是固定参数,这⾥可以借⽤字典的键值对特性来实现。deftest(**m):这⾥加了2个*号#,当成字典的形式接受参数,⼀般写成:**kwargsprint(m)print(type(m))#print(**m)这⾥不能加*#*test(a=3,b=5,c=7)返回结果:{'a':3,'b':5,'c':7}<class'dict'>

上⾯两种不定长参数可以放在⼀起使⽤,表⽰可以接受任意参数,下⾯不给⼤家举例的,我们看看⽂档,很多内建⽅法都使⽤这样的写法。defpow(*args,**kwargs):#realsignatureunknown"""Equivalenttobase**expwith2argumentsorbase**exp%modwith3argumentsSometypes,suchasints,areabletouseamoreefficientalgorithmwheninvokedusingthethreeargument

温馨提示

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

评论

0/150

提交评论