三元表达式
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))