26期_01_Pyhton函数进阶

Python函数进阶:多返回值、参数传递与匿名函数详解

本文基于PPT文档内容,系统讲解Python函数进阶的核心知识点,包括多返回值、多种参数传递方式以及匿名函数的使用。

一、函数多返回值

1.1 多返回值的基本概念

在Python中,函数可以返回多个值,这是通过返回元组(tuple)实现的。

python 复制代码
def test_return():
    return 1, 2

x, y = test_return()
print(x)  # 结果:1
print(y)  # 结果:2

关键要点

  • 按照返回值的顺序,用对应顺序的多个变量接收

  • 变量之间用逗号隔开

  • 支持返回不同类型的数据

1.2 注意事项

如果函数中有多个return语句,只会执行第一个遇到的return,因为return会退出当前函数:

python 复制代码
def return_num():
    return 1  # 只会执行这个return
    return 2  # 这行不会执行

result = return_num()
print(result)  # 输出:1

二、函数多种传参方式

位置参数,关键字参数

位置参数,默认参数

Python函数支持4种常见的参数使用方式:

2.1 位置参数

根据函数定义的参数位置来传递参数:

python 复制代码
def user_info(name, age, gender):
    print(f'您的名字是{name},年龄是{age},性别是{gender}')

user_info('TOM', 20, '男')  # 必须按顺序传递

注意:传递的参数和定义的参数的顺序及个数必须一致。

2.2 关键字参数

通过"键=值"形式传递参数,更加清晰易用:

python 复制代码
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="男")

混用的话,位置参数必须在关键字参数的左侧

关键规则

  • 位置参数必须在关键字参数前面

  • 关键字参数之间不存在先后顺序

2.3 缺省参数(默认参数)

为参数提供默认值,调用时可省略:

python 复制代码
def user_info(name, age, gender='男'):
    print(f'您的名字是{name},年龄是{age},性别是{gender}')

user_info('TOM', 20)        # 使用默认性别'男'
user_info('Rose', 18, '女') # 修改默认值

重要规则:所有位置参数必须出现在默认参数前。

2.4 不定长参数

用于不确定参数个数的场景,分为两种类型:

位置传递(*args)
python 复制代码
def user_info(*args):
    print(args)

user_info('TOM')           # 输出:('TOM',)
user_info('TOM', 20)       # 输出:('TOM', 20)
  • 所有参数被args变量收集为元组

  • 根据参数位置合并为元组

关键字传递(**kwargs)
python 复制代码
def user_info(**kwargs):
    print(kwargs)

user_info(name='TOM', age=20)  # 输出:{'name': 'TOM', 'age': 20}
  • 所有"键=值"参数被kwargs接受为字典

  • 根据键值对组成字典

三、函数作为参数传递

3.1 函数作为参数的概念

函数本身也可以作为参数传入另一个函数中,实现计算逻辑的传递:

python 复制代码
def test_func(compute):
    result = compute(1, 2)
    print(result)

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

test_func(compute)  # 输出:3

3.2 实际应用场景

这种方式可以实现不同的计算逻辑:

python 复制代码
# 加法逻辑
def compute_add(x, y):
    return x + y

# 乘法逻辑  
def compute_multiply(x, y):
    return x * y

# 减法逻辑
def compute_subtract(x, y):
    return x - y

# 使用相同的test_func函数,传入不同的计算逻辑
test_func(compute_add)       # 输出:3
test_func(compute_multiply)  # 输出:2
test_func(compute_subtract)  # 输出:-1

核心优势:传递的是计算逻辑,而不是具体数据,提高了代码的灵活性。

四、lambda匿名函数

4.1 匿名函数的基本语法

lambda关键字用于定义匿名函数(无名称函数):

复制代码
lambda 传入参数: 函数体(一行代码)

4.2 与def函数的对比

使用def定义有名函数

python 复制代码
def test_func(compute):
    result = compute(1, 2)
    print(result)

def hanshu_func (cpmpute):
    print(cpmpute(10,20))

hanshu_func(lambda x,y: 2*x - 3*y)
相关推荐
用户83562907805130 分钟前
Python 实现 PDF 文件加密与解密方法
后端·python
用户83562907805134 分钟前
使用 Python 冻结与拆分 Excel 窗格教程
后端·python
你好潘先生9 小时前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
Agent_大师9 小时前
WebSocket 行情重连成功,K线缺口不会自动消失
python
荣码9 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
copyer_xyf9 小时前
FastAPI 如何连接 MySQL
后端·python
apocelipes1 天前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
用户8356290780511 天前
使用 Python 在 PDF 中创建与管理书签
后端·python
MeixianAgent1 天前
Python 回测数据入口怎么验?历史 K 线入库前先做 5 个检查
后端·python
咕白m6251 天前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python