python 三元表达式 列表推导式,生成器表达式。递归,匿名函数, 内置函数
三元表达式
三元表达式仅应用于:
1.条件成立返回一个值
2、条件不成立返回一个值
res = x if x>y else y
print(res)
name= input("姓名>>: ") res="sb" if name == "alex" else "nb" print(res)
函数的递归
函数的递归:函数递归调用,即在函数调用过程中, 又直接或间接的调用了函数本身。
直接调用 def foo(): print("from foo") foo() foo()
间接调用: def bar(): print("from bar") foo() def foo(): print("from foo") bar() foo()
递归分为两个阶段
1、回溯:注意:一定要在满足某种条件结束回溯, 否则得无限递归
2 递推。
总结:
1:所以递归一定要有一个明确的结束条件
2:每进入下一次递归,问题的规模都应该减少
3:在python中没有尾递归优化
items=[1,[2,[3,[4,[5,[6,[7,[8,[9,[10,]]]]]]]]]] def tell(l): for item in l: if type(item) is not list: print(item) else: tell(item) tell(items)
列表推导式
l=[] for i in range(10): l.append("egg%s"%i) print(l) 可以简写成 l=['egg %s' %i for i in range(100)]
优点:方便,改变了编程习惯 可以称之声明式编程
2、生成器表达式:
1、把列表推导式的[]换成()就是生成器表达式
2、优点:省内存,一次只生产一个值在内存中
l=('egg%s' %i for i in range(1000) if i > 10) print(next(l))