lambda函数被称为匿名函数,主要是指在程序中只调用一次或几次后就不需要再使用的函数,属于“一次性”函数,并且不需要def关键字来定义函数。其语法格式如下:
lambda argument: expression
其中,arguments是函数参数,expression是函数体中的表达式。Lambda函数可以有任意数量的参数,但只能有一个表达式。
例如,求两数之和
f = lambda x, y : x+y
print(f(2, 3)
求两数的平方和
print(lambda x, y: x**2 + y **2)(3, 4))
yield关键字可以将函数执行的中间结果返回但不结束程序。主要用于定义生成器函数(generate),生成器函数是一种特殊类型的函数,它可以在迭代过程中产生一个序列的值。生成器函数在每次迭代时产生一个值,并暂停执行,等待下一次迭代。
使用yield关键字定义的生成器函数,可以使用next(X)来显示结果。
每次迭代时,生成器函数会从上一次yield语句的位置开始执行,直到遇到下一个yield语句或函数结束。
例如
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
print(next(fib)) # 输出:0
print(next(fib)) # 输出:1
print(next(fib)) # 输出:1
print(next(fib)) # 输出:2
print(next(fib)) # 输出:3
在上述例子中,fibonacci()函数是一个生成器函数,使用yield关键字返回斐波那契数列中的每个值。每次调用next(fib)时,生成器函数会从上一次yield语句的位置继续执行,并返回下一个值。