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

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进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

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

进入课程

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

我要回答 关注问题
微信客服

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

帮助反馈 APP下载

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

公众号

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