Lab

Q1 Short Circuiting

>>> True and 13
13
>>> False or 0
0
>>> not 10
False
>>> print(3) or "" # 首先会打印3,再打印“”
3
""

Q2 High-order Function

e>

Q3 Lambda

>>> (lambda: 3)() # 返回3,()后面紧跟在 lambda 表达式后面,表示立即执行这个匿名函数

>>> higher_order_lambda = lambda f: lambda x: f(x)
>>> g = lambda x: x * x
>>> higher_order_lambda(g)(2) # 注意传入顺序,先传g,再传2
4

Q4 Composite Identity Function

返回一个 function,该 function 根据传入的值,判断 f(g(x))和 g(f(x))的值是否一致,一致返回 True, 不一致返回 False。

def composite_identity(f, g):
    def identify(x):
        if f(g(x)) == g(f(x)):
            return True
        else:
            return False
    return identify

或者

def composite_identity(f, g):
    return lambda x: f(g(x)) == g(f(x))

HW