首页 > Python资料 博客日记
python基础——函数进阶【多个返回值,多种传参方式,匿名函数】
2024-03-19 03:00:03Python资料围观137次
📝前言:
这篇文章主要记录一下在python中,关于函数的进阶常用知识,建议对编程中的函数有一定了解的读者阅读,如果想了解一下函数的最基础内容,也可先看这篇文章C语言——函数
在本文,我会主要讲解有关函数的下面几个知识:
1,函数的多个返回值
2,函数的多种传参方式
3,匿名函数
🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础以及python入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:焚膏继晷,兀兀穷年
一,函数的多个返回值
我们都知道用return
可以接受函数的返回值,有意思的是,在 python 中,一个函数可以返回多个值,并且这些返回值可以是不同类型的。
这在实际上相当于返回一个元组(tuple
),但为了使代码更具可读性,Python 允许你直接返回多个值,而不需要显式地创建一个元组。当我们接收多个返回值的时候,我们需要用对应数量的变量来接受。
如下:
def get_name_and_age():
name = "Alice"
age = 25
return name, age # 这会返回一个元组 (('Alice', 25),)
name, age = get_name_and_age()
print(name)
print(age)
在上面的例子中,
get_name_and_age
函数返回了两个值:name
和age
。在调用该函数时,我们使用逗号分隔符来接收这两个返回值,并将它们分别赋值给name
和age
变量。
二,函数的多种传参方式
在python中,函数有多种传参方式。使用方式的不同,函数中有4种常见参数使用方法:
1,位置参数;2,关键字参数;3,缺省参数;4,不定长参数
下面,我们就来依次讲解一下这四种不同的参数
1,位置参数
python 中的位置参数是最基本和最常见的参数类型。它们按照在函数定义中的位置传递,不需要使用参数名称来指定。(传递的参数和定义的参数的顺序及个数必须一致)
以下是一个简单的示例来说明如何使用位置参数:
def greet(name, age):
print(f"Hello {name}, you are {age} years old!")
# 使用位置参数调用函数(按顺序传参)
greet("Alice", 25)
在这个例子中,
name
和age
都是位置参数。它们按照它们在函数定义中的位置传递。
2,关键字参数
关键字传参:函数调用时,通过“键=值”的形式传递参数
作用:可以让函数更加清晰、容易使用,同时也清除了参数的顺需求。
注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面
如下:
def user_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="男")
3,缺省参数
在python中,缺省参数(也称为默认参数)是在函数定义中为参数提供的默认值。当函数调用中未提供该参数的值时,将使用该默认值。(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用,默认参数要放在最后)
例如,考虑以下函数定义,该函数接受一个可选的age参数,并提供一个默认值:
def greet(name, age=25):
print(f"Hello, {name}! You are {age} years old.")
在这个函数中,name
是必需的位置参数,而age
是可选的,其默认值为25。
我们可以调用这个函数,而不提供age参数,如下所示:
greet("Alice") # 输出: Hello, Alice! You are 25 years old.
我们还可以提供age参数的值,如下所示:
greet("Bob", 30) # 输出: Hello, Bob! You are 30 years old.
在这个例子中,我们使用默认参数
age
来简化函数调用,使其更易于使用。
我们不需要在每次调用函数时都提供age
参数,除非我们想要覆盖默认值。
当我们不想使用默认值时,只需提供age
参数,并为其赋值即可
4,不定长参数
不定长参数:不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。
当我们调用函数时不确定参数个数时,就可以使用不定长参数
不定长参数又分两种:用于位置传递(*
) 和 用于关键字传递(**
)
(1)位置传递(*)
当使用一个星号*
在函数参数中时,它表示收集位置参数,将其放入一个元组中。这允许你在函数中使用多个参数,而不需要明确指定每个参数的名称。
在函数调用中,你可以使用任意数量的位置参数,例如:
def print_all(*args):
for arg in args:
print(arg)
print_all(1, 2, 3, 4, 5)
在这里
*args
就是用于位置传递的不定长参数,当我们传入任意数量的位置参数时,都会被*args
接收
(2)关键字传递(**)
当使用两个星号**
在函数参数中时,它表示收集关键字参数,将其放入一个字典中。这允许你在函数中使用多个参数,而不需要明确指定每个参数的名称。
在函数调用中,你可以使用任意数量的关键字参数,例如:
def print_key_values(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_key_values(name="Alice", age=25, country="US")
这里的
**kwargs
就是用于传递关键字的不定长参数,当我们传入任意数量的关键字参数时,都会被**kwargs
接收,同时会根据“键=值
”来组成字典
注意:一般情况下(没有特殊需求),我们在使用不定长参数时,形参都用*args
或**kwargs
来命名(这是规范)
三,匿名函数
在 python 中,匿名函数是没有名字的函数,它们通常用于需要一个函数对象的场景,但不需要为这个函数对象起一个名字。
匿名函数也被称为 lambda
函数,因为它们可以写作 lambda
表达式。
但是要注意:
1,这种函数只能被使用一次。
2,只能有一条语句,无法包含多条语句。
3,会自动返回结果,无法使用return
语句
lambda函数的语法如下:
lambda arguments: expression
其中
arguments
是传递给函数的参数,而expression
是要计算的表达式。
下面是一些使用匿名函数的例子:
1,使用 lambda 函数计算两数之和:
add = lambda x, y: x + y
print(add(3, 4)) # 输出 7
2,使用 lambda 函数计算平方:
square = lambda x: x ** 2
print(square(3)) # 输出 9
3,在 Python 3.x 中,可以在列表解析中使用 lambda 函数:
numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x ** 2, numbers))
print(squares) # 输出 [1, 4, 9, 16, 25]
(注意:函数作为参数传递的时候,传递的是函数体,也就是函数的执行逻辑)
🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj