recursion 与lambda函数

def factorial(n):

    if n==1:

        return 1

    return n*factorial(n-1)

----------------------------------------------------------------------------------

print(factorial(10))

def recursion(n):

    if n==1:

        return 1

    else:

        result=n*recursion(n-1)

    return result

n=int(input("请输入一个正整数:"))

print("%d!="%n,recursion(n))

----------------------------------------------------------------------------------

sum=lambda arg1,arg2:arg1+arg2

#arg1,arg2表示的是函数的参数,"expression"表示的是函数的表达式

#lambda [arg1[,arg2,.....,argn]]:expression

print("运行结果:",sum(1,2))

print("运行结果:",sum(3,4))

#使用lambda声明的匿名函数能接受任何数量的参数,但只能返回一个表达式的值。匿名函数不能直接调用print()

#因为lambda需要一个表达式

#假设之前,我们要对两个数进行运算,如果希望声明的函数支持所有的运算,可以将匿名函数作为函数参数传递。

def fun(a,b,opt):

    print("a=%d"%a)

    print("b=%d"%b)

    print("result=",opt(a,b))

fun(11,22,lambda x,y:x+y)

print("-----------------------")

fun(11,22,lambda x,y:x*y)

---------------------------------------------------------------

#匿名函数还通常作为内置函数的参数来使用

stus=[

{"name":"孙但","age":18},

    {"name":"多少","age":19},

    {"name":"奇数","age":17}

]#列表里面有字典

#按name排序

stus.sort(key=lambda x:x['name'])

print("按name排序后的结果为:",stus)

#按age排序

stus.sort(key=lambda x:x['age'])

print("按age排序后的结果为:",stus)

你可能感兴趣的:(recursion 与lambda函数)