为了账号安全,请及时绑定邮箱和手机立即绑定

ArithmeticProgression 无限运行

ArithmeticProgression 无限运行

幕布斯7119047 2021-06-13 16:51:38
我按照Fluent Python一书的Chapter 14 Control Flow,遇到以下代码的问题:class ArithmeticProgression:    def __init__(self, begin, step, end=None):        self.begin = begin        self.step = step        self.end = end    def __iter__(self):        result = type(self.begin + self.step)(self.begin)        forever = self.end is None        index = 0        while forever or result < self.end:            yield result            index = + 1            result = self.begin + self.step * index当我根据书进行测试时:In [220]: ap = ArithmeticProgression(1, 1, 5)In [221]: apOut[221]: <__main__.ArithmeticProgression at 0x1098b2160>In [222]: list(ap)#it run endless not return any result#I should Ctrl+C to break it mandatory我在 master · fluentpython/example-code 处逐行使用example-code/aritprog_v1.py的源代码检查我的代码,但没有发现任何问题。
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

index = + 1

应该

index += 1

这将在index每次迭代中添加一个。按原样,这是index = +1index = 1。所以result循环之间的值从不改变。


查看完整回答
反对 回复 2021-06-22
  • 1 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号