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))

 

 

 

 

 

 

 

 

 

 

 

 

 

 
posted @ 2018-06-05 00:32  C3的脚印  阅读(138)  评论(0编辑  收藏  举报