欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > Python基础知识 (七)--匿名函数

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

2024/10/25 12:25:15 来源:https://blog.csdn.net/weixin_58468790/article/details/142596580  浏览:    关键词:Python基础知识 (七)--匿名函数

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

定义匿名函数语法:

lambda 参数列表 : 表达式

调用匿名函数语法:

函数名 = lambda 参数列表 : 表达式
函数名([参数列表])

例如,一起来完成:

(1)求解两个数之和;

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

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

# 1.定义求和函数
def get_sum(a, b):c = a + breturn 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)求解两个数之和,注意:在函数中定义变量并传递。

# 1.定义函数
def get_sum(func):print("==================")x = 100y = 998print(f"求和:{func(x,y)}")print("==================")# 2.调用 -传递匿名函数过去
# 可以把引用当作参数直接传递   -闭包
get_sum(lambda a,b:a+b)

运行结果:

==================
求和:1098
==================

总结:

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

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

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

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

# 1.定义函数: 求是否是闰年
def is_run_year(year):"""判断是否是闰年:param year: 年份:return: 是闰年 True;   不是闰年: False"""if (year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):return Truereturn 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 = 0i = 0while i < month:temp_ret += day_lists[i]i += 1# +当前日期days = temp_ret + dayreturn 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)}天.")

运行结果:

请输入年份:2024
2024
请输入月份:6
6
请输入日期:15
15
2024年6月15日是2024年的第167天.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com