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

a=b a= a+b 结果不对啊????

class Fib(object):


    def __init__(self, num):

        n = 0

        y = 1

        self.listf = []

        for x in range(num):

            self.listf.append(n)

            y = n + y

            n = y


    def __str__(self):

        return str(self.listf)

    

    __repr__ = __str__


    def __len__(self):

        return len(self.listf)


f = Fib(10)

print f

print len(f)


正在回答

4 回答

修改调用顺序:

for x in range(num):
    self.listf.append(n)
    # 这个位置的代码换一下顺序,要先a=b,然后再b=a+b
    n = y
    y = n + y


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


a = 0
b = 1
a, b = a, a + b

是先计算右边,a = 0, a + b = 1,,然后赋值给左边,a = 0, b = 1

如果是

a = b
b = a + b

结果就是a = 1,b = a + b = 1 + 1 = 2了

3 回复 有任何疑惑可以回复我~

结果是对的,这个要了解,在一行语句中,是同时进行的

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

这样就是 a = b + b了 因为前面 a = b了  要建一个中间变量

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

举报

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

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

进入课程

a=b a= a+b 结果不对啊????

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