一.三元函数表达式
def max2(x,y):
return x if x>y else y
print(max(10,12))
应用:1.条件成立返回一个值
2.条件不成立返回一个值
def max2(x,y)return x if x>y else y
print(max2(10,11))
二.函数递归:函数的递归调用,即在函数调用的过程中,又直接或间接地调用了函数本身
1️⃣直接调用
def foo()
print('from foo')
foo()
foo():递归死循环
2️⃣间接调用:
def bar()print('from bar')
foo()
def foo()
print('from foo')
bar()foo()
递归分为两个阶段
1.回溯:一定要在满足某种条件结束回溯,否则会无限递归
2.递推
总结:
1️⃣递归一定要有一个明确地结束条件2️⃣每进入下一次递归,问题的规模都应该减少
3️⃣在python中没有尾递归优化
三.匿名函数
1️⃣匿名的目的就是没有名字,给匿名函数赋给一个名字是没有意义的2️⃣匿名函数的参数规则,作用域关系与有名函数时一样的
3️⃣匿名函数的函数体通常应该是一个表达式,该表达式必须要有一个返回值
lambda匿名函数的应用:
#max,min,sorted
salaries={'egon':3000,
'alex':1000000,
'wupeiqi':10000,
'yuanhao':2000
}
#求工资最高的那个人是谁
def get(k):
return salaries[k]
print(max(salaries,key=get))#'egon' 3000
for k in salaries: print(k) #告诉max,比较的依据,k,salaries[k]
print(max(salaries,key=lambda x:salaries[x]))#'egon' 3000
#求工资最低的那个人是谁
#print(min(salaries,key=lambda x:salaries[x]))
把薪资字典,按照xi'ai