找回密码
 会员注册
查看: 24|回复: 0

python基础——函数进阶多个返回值,多种传参方式,匿名函数

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
71934
发表于 2024-9-7 09:40:51 | 显示全部楼层 |阅读模式
📝前言:这篇文章主要记录一下在python中,关于函数的进阶常用知识,建议对编程中的函数有一定了解的读者阅读,如果想了解一下函数的最基础内容,也可先看这篇文章C语言——函数在本文,我会主要讲解有关函数的下面几个知识:1,函数的多个返回值2,函数的多种传参方式3,匿名函数🎬个人简介:努力学习ing📋个人专栏:C语言入门基础以及python入门基础🎀CSDN主页愚润求学🌄每日鸡汤:焚膏继晷,兀兀穷年文章目录一,函数的多个返回值二,函数的多种传参方式1,位置参数2,关键字参数3,缺省参数4,不定长参数(1)位置传递(*)(2)关键字传递(**)三,匿名函数一,函数的多个返回值我们都知道用return可以接受函数的返回值,有意思的是,在python中,一个函数可以返回多个值,并且这些返回值可以是不同类型的。这在实际上相当于返回一个元组(tuple),但为了使代码更具可读性,Python允许你直接返回多个值,而不需要显式地创建一个元组。当我们接收多个返回值的时候,我们需要用对应数量的变量来接受。如下:defget_name_and_age():name="Alice"age=25returnname,age#这会返回一个元组(('Alice',25),)name,age=get_name_and_age()print(name)print(age)12345678在上面的例子中,get_name_and_age函数返回了两个值:name和age。在调用该函数时,我们使用逗号分隔符来接收这两个返回值,并将它们分别赋值给name和age变量。二,函数的多种传参方式在python中,函数有多种传参方式。使用方式的不同,函数中有4种常见参数使用方法:1,位置参数;2,关键字参数;3,缺省参数;4,不定长参数下面,我们就来依次讲解一下这四种不同的参数1,位置参数python中的位置参数是最基本和最常见的参数类型。它们按照在函数定义中的位置传递,不需要使用参数名称来指定。(传递的参数和定义的参数的顺序及个数必须一致)以下是一个简单的示例来说明如何使用位置参数:defgreet(name,age):print(f"Hello{name},youare{age}yearsold!")#使用位置参数调用函数(按顺序传参)greet("Alice",25)12345在这个例子中,name和age都是位置参数。它们按照它们在函数定义中的位置传递。2,关键字参数关键字传参:函数调用时,通过“键=值”的形式传递参数作用:可以让函数更加清晰、容易使用,同时也清除了参数的顺需求。注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面如下:defuser_info(name,age,gender):print(f"您的名字是:{name},年龄是:{age},性别是:{gender}")#关键字传参user_info(name="小明",age=20,gender="男")#可以不按照固定顺序user_info(age=20,gender="男",name="小明")#可以和位置参数混用,但是位置参数必须在前,且位置参数要匹配参数顺序user_info("小明",age=20,gender="男")1234567891011123,缺省参数在python中,缺省参数(也称为默认参数)是在函数定义中为参数提供的默认值。当函数调用中未提供该参数的值时,将使用该默认值。(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用,默认参数要放在最后)例如,考虑以下函数定义,该函数接受一个可选的age参数,并提供一个默认值:defgreet(name,age=25):print(f"Hello,{name}!Youare{age}yearsold.")12在这个函数中,name是必需的位置参数,而age是可选的,其默认值为25。我们可以调用这个函数,而不提供age参数,如下所示:greet("Alice")#输出:Hello,Alice!Youare25yearsold.1我们还可以提供age参数的值,如下所示:greet("Bob",30)#输出:Hello,Bob!Youare30yearsold.1在这个例子中,我们使用默认参数age来简化函数调用,使其更易于使用。我们不需要在每次调用函数时都提供age参数,除非我们想要覆盖默认值。当我们不想使用默认值时,只需提供age参数,并为其赋值即可4,不定长参数不定长参数:不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。当我们调用函数时不确定参数个数时,就可以使用不定长参数不定长参数又分两种:用于位置传递(*)和用于关键字传递(**)(1)位置传递(*)当使用一个星号*在函数参数中时,它表示收集位置参数,将其放入一个元组中。这允许你在函数中使用多个参数,而不需要明确指定每个参数的名称。在函数调用中,你可以使用任意数量的位置参数,例如:defprint_all(*args):forarginargs:print(arg)print_all(1,2,3,4,5)1234在这里*args就是用于位置传递的不定长参数,当我们传入任意数量的位置参数时,都会被*args接收(2)关键字传递(**)当使用两个星号**在函数参数中时,它表示收集关键字参数,将其放入一个字典中。这允许你在函数中使用多个参数,而不需要明确指定每个参数的名称。在函数调用中,你可以使用任意数量的关键字参数,例如:defprint_key_values(**kwargs):forkey,valueinkwargs.items():print(f"{key}:{value}")print_key_values(name="Alice",age=25,country="US")1234这里的**kwargs就是用于传递关键字的不定长参数,当我们传入任意数量的关键字参数时,都会被**kwargs接收,同时会根据“键=值”来组成字典注意:一般情况下(没有特殊需求),我们在使用不定长参数时,形参都用*args或**kwargs来命名(这是规范)三,匿名函数在python中,匿名函数是没有名字的函数,它们通常用于需要一个函数对象的场景,但不需要为这个函数对象起一个名字。匿名函数也被称为lambda函数,因为它们可以写作lambda表达式。但是要注意:1,这种函数只能被使用一次。2,只能有一条语句,无法包含多条语句。3,会自动返回结果,无法使用return语句lambda函数的语法如下:lambdaarguments:expression1其中arguments是传递给函数的参数,而expression是要计算的表达式。下面是一些使用匿名函数的例子:1,使用lambda函数计算两数之和:add=lambdax,y:x+yprint(add(3,4))#输出7122,使用lambda函数计算平方:square=lambdax:x**2print(square(3))#输出9123,在Python3.x中,可以在列表解析中使用lambda函数:numbers=[1,2,3,4,5]squares=list(map(lambdax:x**2,numbers))print(squares)#输出[1,4,9,16,25]123(注意:函数作为参数传递的时候,传递的是函数体,也就是函数的执行逻辑)🌈我的分享也就到此结束啦🌈要是我的分享也能对你的学习起到帮助,那简直是太酷啦!若有不足,还请大家多多指正,我们一起学习交流!📢公主,王子:点赞👍→收藏⭐→关注🔍感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 19:33 , Processed in 0.470761 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表