Python基础知识 (七)--匿名函数

匿名函数表示没有名字的函数,这种函数得名于省略了用def关键字声明函数的标准步骤。

定义匿名函数语法:

python 复制代码
lambda 参数列表 : 表达式

调用匿名函数语法:

python 复制代码
函数名 = lambda 参数列表 : 表达式
函数名([参数列表])

例如,一起来完成:

(1)求解两个数之和;

(2)使用def定义函数,完成求和操作;

(3)使用匿名函数简化函数求和操作。

python 复制代码
# 1.定义求和函数
def get_sum(a, b):
    c = a + b
    return c
# 1.2.调用
print(get_sum(19,23))  # 42



# 2.匿名函数  --对比
get_sum = lambda a,b:a+b
#2.1.调用
print(get_sum(20,10))  #30

总结:

(1)当且仅当只需要调用使用一次时,可以优先使用(匿名函数)函数来完成。

(2)注意:匿名函数在实际应用中使用较少,了解即可。

了解]lambda的应用

在实际应用中,为便于简化函数传递处理,我们可以使用lambda表达式作为参数进行传递,但要注意:传递的是一个引用。

例如,一起来完成:

(1)把lambda表达式当作参数传递给函数;

(2)求解两个数之和,注意:在函数中定义变量并传递。

python 复制代码
# 1.定义函数
def get_sum(func):
    print("==================")
    x = 100
    y = 998
    print(f"求和:{func(x,y)}")
    print("==================")

# 2.调用 -传递匿名函数过去
# 可以把引用当作参数直接传递   -闭包
get_sum(lambda a,b:a+b)

运行结果:

python 复制代码
==================
求和:1098
==================

总结:

(1)当要定义一个匿名函数时,需要使用(lambda)关键字;

(2)当完成一个功能简单的需求时,可以使用匿名函数,而当需求较复杂时,不建议使用匿名函数。

【==思考==】使用函数形式来求解某天是该年的第几天?比如,2023年1月3日是2023年的第3天。

提示:要区分闰年、平年,闰年指的是能被4整除且不能被100整除,或者能被400整除的年份。

python 复制代码
# 1.定义函数: 求是否是闰年
def is_run_year(year):
    """
    判断是否是闰年
    :param year: 年份
    :return: 是闰年 True;   不是闰年: False
    """
    if (year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
        return True
    return False

# 2.求解第几天: 之前月份的总天数+当前日期
def get_days(year, month, day):
    days = 0
    # 判断年份
    # if is_run_year(year):
    if is_run_year(year) == True:
        day_lists = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30]
    else:
        day_lists = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30]
    # 通过月份数求解之前月份的总天数
    temp_ret = 0
    i = 0
    while i < month:
        temp_ret += day_lists[i]
        i += 1
    # +当前日期
    days = temp_ret + day
    return days

# 3.输入年月日、调用函数
in_year = int(input("请输入年份:"))
in_month = int(input("请输入月份:"))
in_day = int(input("请输入日期:"))
print(f"{in_year}年{in_month}月{in_day}日是{in_year}年的第{get_days(in_year,in_month,in_day)}天.")

运行结果:

python 复制代码
请输入年份:2024
2024
请输入月份:6
6
请输入日期:15
15
2024年6月15日是2024年的第167天.
相关推荐
databook13 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar14 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805114 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_14 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机21 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机1 天前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i1 天前
drf初步梳理
python·django
每日AI新事件1 天前
python的异步函数
python