1.可迭代对象有且不限:
list,dict,str,set,tuple
查看是否是可迭代对象方式:
print(dir(list))
#输出list所有的方法,其中包含__iter__()方法就是可迭代对象
可迭代对象的好处:
使用灵活、直接查看值
缺点:消耗内存
2.迭代器:
官方声明只要具有__iter__()方法、next()方法就是迭代器
f = open("aaaa","w")
f.__iter__()
f.__next__()
#文件句柄就是迭代器
3.可迭代对象转换成迭代器
list = [1,2,3,4,5]
new_list = list.__iter__()
#用__iter__()方法
迭代器取值:
list = [1,2,3,4,5]
new_list = list.__iter__()
print(new_list.__next__())
print(new_list.__next__())
print(new_list.__next__())
list = [1,2,3,4,5]
new_list = list.__iter__()
count = len(list)
while count:
print(new_list.__next__())
count -= 1
s = "12345689"
new_s = s.__iter__()
while True:
try:
print(new_s.__next__())
except StopIteration:
exit
4.递归
自己调用自己
def func(a):
a -= 1
if a == 0:
return 18
else:
return func(a)+2
print(func(5))