尝试创建 python 生成器时出现问题
我正在尝试学习如何使用生成器,所以我写了这个,但它总是打印相同的值。为什么?
我希望它生成从 999 到 100 的值。
>>> def gen_a():
a=999
while a>99:
yield a
a-=1
>>> gen_a().next()
999
>>> gen_a().next()
999
>>> gen_a().next()
999
I am trying to learn how to use generators, so I wrote this one, but it just prints the same value all the time. Why?
I want it to generate values from 999 down to 100.
>>> def gen_a():
a=999
while a>99:
yield a
a-=1
>>> gen_a().next()
999
>>> gen_a().next()
999
>>> gen_a().next()
999
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因为你一遍又一遍地生成发电机。
尝试:
Because you are generating the generator over and over.
Try:
您每次都在创建一个新的生成器。试试这个:
You're creating a new generator each time. Try this instead: