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

 

以上是关于python之路--函数--参数的主要内容,如果未能解决你的问题,请参考以下文章

python开发之路---第二章之--基本函数介绍

Python3学习之路~3.1 函数基本语法及特性返回值参数局部与全局变量

Python 函数之路

Python之路——函数

Python之路-函数基础和参数

python之路--函数--参数