【问题标题】:I do not understand this code in python (help) [duplicate]我不明白python中的这段代码(帮助)[重复]
【发布时间】:2015-05-19 20:14:07
【问题描述】:

所以代码是

def mystery(n):
    a, b = 0, 1
    while (a < n):
        print(a)
        a, b = b, a + b

我不太明白的一点是 a, b = b, a + b 是如何工作的。对我来说似乎真的很难理解。我很难理解变量如何与涉及的列表一起工作。有人可以说明正在产生什么序列以及数字是如何计算的。

序列是注定的

0

1

1

2

3

5

8

13

21

34

我会非常感激,提前谢谢!

【问题讨论】:

  • 请注意,如果您搜索def mystery(n) site:stackoverflow.com,您会发现近 25,000 个几乎相同的问题...
  • @jonrsharpe OMG,其中很多都是关于这种精确算法的。
  • @YatharthROCK 是的,这是一个很常见的入门编程练习

标签: python


【解决方案1】:

a, b = b, a + b, 中,右侧的表达式在分配给左侧之前先进行评估。所以相当于:

c = a + b
a = b
b = c

这实际上是在你的情况下交换所以,OP:

a, b = 0,1

将评估为 b=0a=1

【讨论】:

    猜你喜欢
    • 2018-12-28
    • 2010-11-12
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多