day 22 函数的多返回值 函数的多种参数使用形式 匿名函数

如果一个函数里面有俩个return,程序会执行到以一个return,因为return会退出当前函数,下方return下方的代码不执行

def return_num():
    return 1
    return 2


result = return_num()
print(result)
# 结果只会返回1

 

如果一个函数要返回多个返回值,按照返回值的·顺序,写对应顺序的多个变量接收。变量之间用逗号隔开,支持不同类型的数据return        

def return_num():
    return 1,2


x, y = return_num()
print(x)
print(y)
# 结果分别返回1, 2

位置参数:调用函数时根据函数定义的参数位置来传递参数,传递参数和定义的参数顺序及个数必须一致

def user_info(name, age, gender):
    print(f"你的名字是{name},你的年龄是{age},性别是{gender}")


user_info("Tom",20,"男")
# 结果  你的名字是Tom,你的年龄是20,性别是男

 

关键字参数:函数调用时通过 ”键=值“形式传递参数

作用:可以让函数更加清晰,容易使用,清除了参数的顺序需求

注意:如果有位置参数,位置参数必须在关键字参数前面,但关键字参数之间不存在先后顺序

def user_info(name, age, gender):
    print(f"你的名字是{name},你的年龄是{age},性别是{gender}")


user_info(name="Tom", age=20, gender="男")
user_info( age=20, gender="男",name="Tom")   # 可以打乱顺序
user_info("Tom", age=20, gender="男")  # 位置参数在前,关键字参数在后
# 结果
#你的名字是Tom,你的年龄是20,性别是男
#你的名字是Tom,你的年龄是20,性别是男
#你的名字是Tom,你的年龄是20,性别是男

 

缺省参数:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传默认参数的值(所有位置参数必须出现在默认参数前,包括函数定义和调用)

def user_info(name, age, gender='男'):
    print(f"你的名字是{name},你的年龄是{age},性别是{gender}")


user_info("小天", "18")
# 结果 你的名字是小天,你的年龄是18,性别是男

user_info("小天", "18", "女")
# 结果 你的名字是小天,你的年龄是18,性别是女

不定长参数:不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。

作用:当调用函数时不确定参数个数时,可以使用不定长参数

类型:位置传递,关键字传递

位置传递:传递的所有参数都会被args收集,他会根据传进参数的位置合并成一个元组tuple,args是元组类型,这就是位置传递。(定义*args是约定俗成)

def user_info(*args):
    print(f"args的类型是{type(args)},args的内容是{args}")


user_info(1, 2, 3, 4, 5, "你好")


# 结果 args的类型是<class 'tuple'>,args的内容是(1, 2, 3, 4, 5, '你好')

 

 

关键字传递:参数是在"键= 值"形式的情况下,所有的”键= 值“都会被kwargs接受,同时组成字典                          (定义**kwargs是约定俗成)

def user_info(**kwargs):
    print(f"kwargs的类型是{type(kwargs)},kwargs的内容是{kwargs}")


user_info(name="小明", age=18, gender="男")
# 结果  kwargs的类型是<class 'dict'>,kwargs的内容是{'name': '小明', 'age': 18, 'gender': '男'}

函数本身也可以作为参数传入另一个函数当中,传入计算逻辑,而非传入数据

def num(x, y):
    return x + y


def num1(num):
    result = num(1, 2)
    print(type(num))  #  <class 'function'>,功能函数
    print(result)
    return result


num1(num)

在函数的定义中:def定义带有名称的函数,可以重复使用

                             lambda关键字,可以定义匿名函数(无名称),只可以临时使用一次

语法:lambda 传入参数:函数体:(只能写一行代码),用于临时构建一个函数,只用一次的场景

def num1(num):
    result = num(1, 2)
    print(result)
    return result


num1(lambda x, y: x + y) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值