4.2

三元表达式

def max2(x,y):

    if x > y:

       return x

    else:

       return y

max2(10,11)

三元表达式只用于条件成立返回一个值,条件不成立返回一个值

def max2(x,y):

    return x if x > y else y

max2(10,11)

函数递归

函数的递归调用在函数的调用过程种,又直接或间接地调用了函数本身

直接调用

def foo():

    print('===>')

    foo()

foo()

间接调用

def bar():

    print('===>')

    foo()

bar()

def foo():

    print('--->')

    bar()

foo()

递归分为两个阶段:

1.回溯

注意:一定要在满足某条件结束回溯,否则就死循环

2.递推

总结:

1.递归一定要有一个明确地结束条件

2.每进入下一个递归,问题的规模都应该减少

3.在python中没有尾递归优化

匿名函数

def max2(x,y):

    if x > y:

       return x

    else:

       return y

lambda x:需要的运算方式

函数不会单独使用

强调 匿名的目的就是要没有名字,有名字则是无意义的

     匿名函数的参数规则,作用域关系与有名函数是一样的

     匿名函数的函数体通常是一个表达式,该表达式必须要有一个返回值

内置函数

dic={'egon1':3000,
'egon2':10000,
'egon3':1000
}

max(最大值)

print(max(dic,key=lambda z:dic[z]))

min(最小值)

print(min(dic,key=lambda z:dic[z]))

sorted(排序)

print(sorted(dic,key=lambda z:dic[z]))

map(映射)

map(映射规则 加可迭代对象)
name=['wxx','alex','lmm']
res=map(lambda x:x +'SB',name)
print(res)

reduce(合并)

from functools import reduce


res=reduce(lambda x,y:x+y ,range(1,101))
print(res)

filter(过滤)
age=[11,15,50,68,70]
r=filter(lambda x: x>40,age)
print(list(r))

















原文地址:https://www.cnblogs.com/yftzw/p/8695292.html