python之路--函数--参数
Posted nancyxuege
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之路--函数--参数相关的知识,希望对你有一定的参考价值。
1.位置参数
def sum(x,y): sum =x + y return sum l1 = sum(1,2) print(l1)
2.关键字参数
def sum(x,y): sum =x + y return sum l1 = sum(y=10,x=2) print(l1)
3.位置、关键字形式混着用
正确用法
问题一:位置参数必须在关键字参数的前面
问题二:对于一个形参只能赋值一次
def sum(x,y): sum =x + y return sum l1 = sum(3,y=2) print(l1)
4.默认参数
-----为什么要有默认参数:将变化比较小的值设置成默认参数
def stu_info(name,sex = "male"): """打印学生信息函数,由于班中大部分学生都是男生, 所以设置默认参数sex的默认值为‘male‘ """ print(name,sex) stu_info(‘alex‘) stu_info(‘eva‘,‘female‘)
参数陷阱:默认参数是一个可变数据类型
def defult_param(a,l = []): l.append(a) print(l) defult_param(‘alex‘) defult_param(‘egon‘)
5.动态参数
--按位置传值多余的参数都由args统一接收,保存成一个元组的形式
def mysum(*args): return args l = mysum(1,2,‘name‘,[3,4],{‘name‘:‘nancy‘}) print(l) #(1, 2, ‘name‘, [3, 4], {‘name‘: ‘nancy‘})
def stu_info(**kwargs): print(kwargs) #{‘name‘: ‘alex‘, ‘sex‘: ‘male‘} print(kwargs[‘name‘],kwargs[‘sex‘]) #alex male stu_info(name = ‘alex‘,sex = ‘male‘)
notice :位置参数必须传值
def mymax(x,y): #此时x = 10,y = 20 print(x,y) the_max = x if x > y else y return the_max #调用mymax不传递参数 ma = mymax() print(ma) #结果 TypeError: mymax() missing 2 required positional arguments: ‘x‘ and ‘y‘ 复制代码
以上是关于python之路--函数--参数的主要内容,如果未能解决你的问题,请参考以下文章