#迭代是指通过执行相似数据集的过程,上一次产生的结果为下一次产生结果的初始状态。
#"\"反斜杠是为了续行
links = {'鱼C工作室':'www.fishc.com',\
'鱼C博客':'bbs.fishc.com',\
'鱼C论坛':'blog.fishc.com',\
'支持小甲鱼':'fishc.taobao.com',}
for each in links:
print("%s -> %s" % (each, links[each]))
string = "FishC"
it = iter(string) #生成一个迭代器
next(it)
next(it)
next(it)
#ctrl + c 强制停止
class Fibs:
def __init__(self, n=10):
self.a = 0
self.b = 1
self.n = n
def __iter__(self):#返回它自己
return self
def __next__(self):
if self.n>100:
raise.StopInteration#停止迭代
self.a, self.b = self.b, self.a + self.b
return self.a
fib = Fibs()
for each in fib:
if each>20:
print(each)
else
break
#协同程序是可以独立运行的函数调用,函数可以暂时挂起
#生成器是特殊的迭代器
def myGen():
print("myGen被执行")
yield 1 #返回1,后面程序被暂停,返回从2开始
yield 2
mygen = myGen()
next(mygen)
next(megen)
#无元素时,再走就会程序报错。
for i in myGen():
print(i)
def libs():
a = 0
b = 1
while True:
a, b = b, a + b
yield a
for each in libs():
if each>100:
break
print(each, end=' ')
i for i in range(100) if not(i % 2) and i % 3
#and两边都为真才为真,左边not(i%2)说明 i % 2 为假,i % 2 == 0为假, i % 3 !=0 为真
#所以是100以内能被2整除而不能被3整除的数
b = {i:i % 2 == 0 for i in range(10)}
c = {i for i in[1, 2, 3, 5, 6, 7, 5, 3, 2, 1]}
e = {i for i in range(10)}
next(e)
for each in e:
print(each)
sum(i for i in range(100) if i % 2 == 0)