函数进阶,仅作了解

'''

函数进阶,仅作了解

'''

#可迭代对象与迭代器:
# 可迭代对象: 含有__iter__方法叫做可迭代对象,除了数字类型,都是可迭代对象,可迭代对象使用__iter__变成迭代器
# 迭代器对象: 含有__iter__和__next__方法叫做迭代器对象,只有文件是迭代器对象,迭代器使用__iter__依然是迭代器
# 可迭代对象不一定是迭代器对象; 迭代器对象一定是可迭代对象


#三元表达式
x = 10
y = 20
print(x) if x > y else print(y)
#列表推导式
lt = [i**2 for i in range(10)]
print(lt)
#字典生成式
dic = {i:i**2 for i in range(10)}
print(dic)
或
lt1 = ['a', 'b', 'c']
lt2 = [1, 2, 3]
dic = {k: v ** 2 for k, v in zip(lt1, lt2)}
print(dic)



#生成器表达式:
#生成器: 本质就是迭代器,生成器就是一个自定义的迭代器
#生成器:含有yield关键字的函数叫做生成器
#一个yield相当于一个next; 暂停函数

'''

yield与return的区别:

yield的特性:

1.暂停函数 2. 通过next取值
return的特性:

1.终止函数2. 通过调用函数拿到值

'''

#递归:传递 ; 回归.函数a内部直接调用函数a本身
# 每一次递归,不会结束函数,并且每一次递归都会开辟内存空间,如果一直开辟内存就炸掉了,所以最多递归1000次
# 真正的递归必须得要有退出条件

'''

递归:

1.函数内部调用函数自己

2.必须要有退出条件

3.递归必须要有规律

'''


posted @ 2019-09-24 18:52  哥$  阅读(140)  评论(0编辑  收藏  举报