Python lambda 表达式测试题

tech2022-09-21  113

你真的会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
最新回复(0)