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

我这个代为什么运行错误?

class Fib(object):


    def __init__(self, num):

        self.num=num

        self.L=[]


    def __str__(self):

        if self.num==1:

            self.L.append(0)

            return str(self.L)

        elif self.num==2:

            self.L=[0,1]

            return str(self.L)

        else:

            for x in range(2,self.num):

                self.L=[0,1]

                self.L.append(self.L[-1]+self.L[-2])

            return str(self.L)


    def __len__(self):

        return len(self.L)


f = Fib(10)

print f

print len(f)

运行结果是:

[0.1.1]

3

为什么只有3次?

正在回答

1 回答

        else:

            for x in range(2,self.num):

                self.L=[0,1]

                self.L.append(self.L[-1]+self.L[-2])

            return str(self.L)


老哥,别把self.L=[0,1]这个放进循环中啊,这样每次都是从L=[0,1]开始,当然只有0,1,1,写在for..in 前面就行了


0 回复 有任何疑惑可以回复我~
#1

weixin_慕莱坞6419966

每一次都类似于初始化了
2019-02-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

我这个代为什么运行错误?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信