目录
- 迭代器
- 可迭代对象
- 迭代器对象
- 三元表达式
- 列表推导式
- 字典生成器
- 生成器生成方式
- 生成器
- 递归函数
迭代器
迭代器:不是函数,只是一个称呼,表示更新换代的意思,如同软件的本版更新,基于软件的上一个版本
可迭代对象
python中一切皆为对象
可迭代对象: 含有__iter__方法叫做可迭代对象 --> 除了数字类型都是可迭代对象 --> 可迭代对象使用__iter__变成迭代器
s = 1
it = [1,2,3]
dic = {'a':2,'b':3}
tup = (1,)
se = {1}
fw = open(''test.txt', 'a+', encoding='utf8')
除了数字类型外,其他数据类型都是可迭代对象,都有__inter__
迭代器对象
迭代器对象: 含有__iter__和__next__方法叫做迭代器对象 --> 只有文件时迭代器对象 --> 迭代器使用__iter__依然是迭代器
为什么要有迭代器:提供了一种不需要索引取值的手段
三元表达式
x = 10
y = 20
print(x) if x > y else print(y)
# 条件成立走这里 if 条件 else 条件不成立走这里
列表推导式
lt = [i for i in range(10)]
print(lt)
字典生成器
lt1 = ['a','b','c']
lt2 = [1,2,3]
dic = {k:v for k v in zip(li1,lt2)}
print(dic)
生成器生成方式
g = (i for in range(5))
print(g)
# 生成器表达式: 看成老母鸡,节省内存空间,用就下蛋
# 列表推导式: 看成一筐鸡蛋,非常占用内存空间
生成器
本质是一个迭代器 ---> 生成器: 本质就是迭代器,生成器就是一个自定义的迭代器
含有yield关键字的函数叫生成器
def ge()
yield 3
yield 4
g = ge()
print(g.__next__)
print(g.__next__)
# yield的特性:
# 1.暂停函数
# 2.通过next取值
# return的特性
# 1. 终止函数
# 2.通过调用函数拿到值
递归函数
递归:函数a内部直接调用函数a本身‘
- 函数内部调用函数自己
- 必须要有退出条件
- 递归必须要有规律
count = 0
def a():
global count
count+=1
print(count)
if count==5:
return
a()
a()
def age(x):
if x == 0:
return 20
x -= 1
return age(x) + 2
res = age(6)
print(res) # 32