Python lambda 表达式测试题

你真的会lambda表达式吗?

最近在刷CS61A的lab的时候,遇到了一些很有意思的关于lambda表达式的问题。
以下题目均来自CS61A的lab02, 地址为https://inst.eecs.berkeley.edu/~cs61a/sp18/lab/lab02/
现在给大家分享一下。

Python 会显示什么?

输入Function 如果你认为答案是某个函数 <function…>, 输入Error 如果你认为答案会返回一个error, 输入Nothing 如果你认为什么都不显示。如果遇到不会的,可以打开python调试器测试一下。

# 1. A lambda expression with one parameter x
lambda x: x  

# 2. Assigning a lambda function to the name a
a = lambda x: x  
a(5)

#3. Using a lambda expression as an operator in a call exp.
(lambda: 3)() 

# 4. Lambdas can return other lambdas!
b = lambda x: lambda: x  
c = b(88)
# 4.1
c()

# 5. They can have functions as arguments as well
d = lambda f: f(4)  
def square(x):
	return x * x
d(square)

# 6.Pay attention to the scope of variables
z = 3
e = lambda x: lambda y: lambda: x + y + z
e(0)(1)()

# 7
f = lambda z: x + z
f(3)

# 8. Which argument belongs to which function call?
higher_order_lambda = lambda f: lambda x: f(x)
g = lambda x: x * x
higher_order_lambda(2)(g) 
#8.1
h(g)(2)

# 9.
t = lambda f: lambda x: f(f(f(x)))
t(lambda y: y + 1)(0)

# 10.
print_lambda = lambda z: print(z)
print_lambda
# 10.1
one_thousand = print_lambda(1000)
# 10.2
one_thousand

答案如下:

1. Function
2. 5
3. 3
4. Function
   4.1 88
5. 16
6. 4
7. Error
8. Error
   8.1  4
9. 3
10. Function
    10.1 1000
    10.2 Nothing

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python lambda表达式是一种简洁的匿名函数表达式,它由关键字lambda后跟一个或多个参数,冒号和一个表达式组成。lambda表达式可以在需要函数对象的任何地方使用,常用于函数式编程和简单的函数操作。 关于lambda表达式的一些特点包括: 1. lambda表达式可以只包含一个表达式,该表达式的结果将作为函数的返回值。 2. lambda表达式可以有任意数量的参数,但只能有一个表达式。 3. lambda表达式常用于函数式编程中的高阶函数,如map()、filter()和reduce()等。 4. lambda表达式通常用于快速定义短小的函数,减少代码的数量和复杂性。 关于lambda表达式的更多使用方法和示例,可以参考相关的文档和教程。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python学习系列之lambda表达式](https://blog.csdn.net/answer3lin/article/details/86352009)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [pythonlambda表达式详细讲解](https://blog.csdn.net/weixin_46654114/article/details/125640201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值