参数

参数的分类

1.位置参数。一个标识符做形参。位置参数普通和常用。

def get_max(a, b, c):
    max_num = a

    if b > max_num:
        max_num = b
    if c > max_num:
        max_num = c

    return max_num

get_max(1, 5, 3)

2.默认参数。带默认值的参数。
例子中的step = 1 就是一个默认参数。函数调用时可以默认你参数,那么这个参数的值就是默认值。如果传入实参时,实参会覆盖参数默认值
参数的顺序:默认参数必须在位置参数之后。否则会报错
默认值一般定义为你想要的默认信息,数字类型参数默认值可以定为0,字符串参数默认值 ‘’ ,布尔默认值一般为False.

def myrange(start, end, step=1):
    i = start
    while i < end:
        print(i)
        i += step

myrange(1, 10, 2)

3.键值对参数(函数调用时传入实参)
当参数比较多时,超过五个或者更多个时,用位置参数容易混淆出错。
实参 键=值,这样就能准确给形参传值,所以位置顺序可以调换,但是要跟在位置参数的后面。

def print_stu_info(name, sex='male', score=0):
    print('姓名:{}, 性别:{}, 分数:{}'.format(name, sex, score))

print_stu_info('小明', score=90, sex='male')

4.可变参数
*args (args为变量)表示传入一串参数,列表类型的参数过多时,方便函数书写定义和调用更方便。
items()方法语法:dict.items() 函数以列表返回可遍历的(键, 值) 元组数组,用以遍历列表。

args:只接收一个列表中的其中一个参数,为了标识参数较多,形如一个列表,用args表示。

student_list = ['小明','小红','小白']
def print_info(*args):
    for arg in args:
        print(arg)
print_info(*student_list)

# print_info(*['小明','小红','小白'])      可变列表参数

这个例子只传入了一个参数,参数类型为列表,例子中传入的是不同方面的参数,只不过用列表把他们装在了一起,本质是传入多个参数

def print_stu_info(L):
    for i in L:
        print(i)

print_stu_info(['小明','小红','小白'])

**kwargs 只用于接收形如字典且参数较多的序列

product_dict = {'name':'xbox','price':3000,'weight':5000,'cpu':'','gpu':''}
def print_info(**kwargs):
    for x,y in product_dict.items():      # .items()用于遍历字典,只适用于字典
        print(x,y)
print_info(**product_dict)

# print_info(**{'name':'xbox','price':3000,'weight':5000,'cpu':'','gpu':''})    # 可变字典参数(实参)

列表、字典
知识点:*args 、**kwargs

def show(*args,**kwargs):
    print(args, type(args))
    print(kwargs,type(kwargs))

L=[11,22,33,]
d={'n1':88,'zy':'sb'}
show(*L,**d)

函数有哪几种参数?
位置参数、默认值参数、可变参数

顺序有没有要求? 有要求
位置参数 > 默认值参数(在后),
可变参数位置有:*args列表 > **kwargs字典(在后)

参数位置:位置参数(没有默认值的参数) > 默认参数 > list参数(*args) > 字典参数 (**kwargs)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值