Python3 生成器

发布于:2021-12-01 02:01:57

1、协同程序

协同程序就是指一个函数可以暂时挂起,并在需要的时候回到程序离开的地方继续执行


2、怎样将一个函数变为生成器

一般函数结束于return语句、异常或者函数语句全部执行完毕,结束时数据全部丢失,再次使用函数得从头再来


可以用yield语句 取代return语句,从而函数改造成生成器,是再次需要该函数的时候可以回到离开的地方继续执行



def get_primes(number):
while True:
if is_prime(number):
yield number
number += 1

这是一个素数的生成器?


while True:的作用是使函数不会执行到最后


例子:

用生成器实现reversed()功能



def myRev(data):
# 这里用 range 生成 data 的倒序索引
# 注意,range 的结束位置是不包含的
for index in range(len(data)-1, -1, -1):
yield data[index]


def MyRev(seq):
index=-1
print("到这")
while True:
try:
yield seq[index]
print("循环内")
index-=1
except IndexError:
return StopIteration

就算2000000以内的素数之和



mport math
def get_prime(number):
while True:
if is_prime(number):
yield number
number+=1


def is_prime(num):
if num>1:
if num == 2:
return num
else:
for i in range(3,int(math.sqrt(num) + 1),2):
if num%i==0:
return False
return True
return False

totle=0

for i in get_prime(1):
if i<2000000:
print(i)
totle+=i
else:
break




?

相关推荐

最新更新

猜你喜欢