从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章将为大家详细讲解有关yield的用法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联建站是一家专注于网站制作、成都网站设计与策划设计,遵义网站建设哪家好?创新互联建站做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:遵义等地区。遵义做网站价格咨询:028-86922220
我们一起看两个生成器相关的练习,主要是练习一下 yield 的用法。
输入一个数字 n,写一个程序判断 0 到 n 之间的偶数,并用逗号分隔来输出。
比如输入:10
输出结果:0,2,4,6,8,10
我们首先需要一个循环,找到 10 以内的所有数字,然后判断是否是偶数。题目要求用生成器的方式,我们只需要写一个生成器函数,在找到符合条件的数字后,使用 yield 输出。最后直接循环生成器,找到需要的值放入列表,最后用逗号分隔输出即可。
def EvenGenerator(n):
i = 0
while i <= n:
if i%2 == 0:
yield i
i += 1
n = int(input())
values = []
for i in EvenGenerator(n):
values.append(str(i))
print(",".join(values))
输入一个数字 n,写一个程序判断 0 到 n 之间的可以同时被 5 和 7 整除的数字,并用逗号分隔来输出。
比如输入:100
输出结果:
0,35,70
此题目和上一个类似,你会发现这一次只是核心判断条件有变化,输入和输出不一样,但其实套路没变,还是用一个生成器函数,对应条件的地方用 yield 把数据返回即可。
def NumGenerator(n):
for i in range(n+1):
if i%5 == 0 and i%7 == 0:
yield i
n = int(input())
values = []
for i in NumGenerator(n):
values.append(str(i))
print(",".join(values))
上述两个练习都使用了 yield 把一个普通函数,变成了 generator 函数。这样 Python 解释器在处理这些代码时,会在调用这个生成器的循环中,遇到 yield 就返回一次值,并保存当前变量的状态,当下一次循环到来时,自动从上一次的状态继续往后计算。也就是我们需要的结果了。
关于yield的用法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图