在一行和几行上写东西之间的区别

发布于 2021-01-29 16:33:04

当我在一行上写东西时,用a,和两行分隔的区别在哪里?显然我不明白其中的区别,因为尽管下面的两个函数应该返回相同的结果。

def fibi(n):
    a, b = 0, 1
    for i in range(n):
        a, b = b, a + b
    return a

print(fibi(6))
> 8 # expected result (Fibonacci)

def fibi(n):
    a, b = 0, 1
    for i in range(n):
        a = b
        b = a + b 
    return a


print(fibi(6))
> 32
关注者
0
被浏览
46
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这是由于Python的元组解包。在第一个示例中,Python收集右侧的值,将其设为一个元组,然后将元组的值分别分配给左侧的名称。因此,如果a == 1和b
    == 2:

       a, b = b, a + b
    => a, b = (2, 3)
    => a = 2, b = 3
    

    但是在第二个示例中,这是常规分配:

       a = b
    => a = 2
       b = a + b
    => b = 4
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看