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)
相关推荐
充值修改昵称2 小时前
数据结构基础:B+树如何优化数据库性能
数据结构·b树·python·算法
AI殉道师2 小时前
FastScheduler:让 Python 定时任务变得优雅简单
开发语言·python
小二·2 小时前
Python Web 开发进阶实战:AI 伦理审计平台 —— 在 Flask + Vue 中构建算法偏见检测与公平性评估系统
前端·人工智能·python
华研前沿标杆游学2 小时前
2026年商汤科技参访深度解析人工智能发展
python
知数SEO2 小时前
Centos如何安装高版本Python
linux·python·centos
试剂小课堂 Pro2 小时前
mPEG-Silane:mPEG链单端接三乙氧基硅的亲水性硅烷偶联剂
java·c语言·网络·c++·python·tomcat
踏歌~2 小时前
终极指南:在 Windows 上配置 KDB+, JupyterQ 与 Python (embedPy)
开发语言·windows·python
screenCui2 小时前
算力市场JupyterLab简要使用命令
python
小二·2 小时前
Python Web 开发进阶实战:边缘智能网关 —— 在 Flask + MicroPython 中构建轻量级 IoT 边缘推理平台
前端·python·flask