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)
View Code

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')
View Code

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'})
View Code
def stu_info(**kwargs):
    print(kwargs)
    #{'name': 'alex', 'sex': 'male'}
    print(kwargs['name'],kwargs['sex'])
    #alex male

stu_info(name = 'alex',sex = 'male')
**kwargs

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'
复制代码
View Code

猜你喜欢

转载自www.cnblogs.com/nancyxuege/p/9384593.html