gpt4 book ai didi

python - 关于Python的函数教程中斐波那契数列的例子

转载 作者:太空狗 更新时间:2023-10-30 00:30:08 25 4
gpt4 key购买 nike

这就是they有:

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

这是我的:

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

第一个在使用时返回正确的序列,而我的则返回 0、1、2、4、8、16、32...

我目前正在学习编程(之前没有接受过计算机科学教育),很明显问题出在我定义变量的方式上。用逗号分隔变量和用新行分隔变量(假设这是问题所在)之间有什么区别?

最佳答案

这是一个元组赋值:

a, b = 0, 1

你也可以认为是

(a, b) = (0, 1)

使用值 01 创建一个临时元组,然后将其解压到变量 ab

这也是一个元组赋值

a, b = b, a+b

同样,您可以将其视为

(a, b) = (b, a+b)

临时元组是根据 ba+b 的值创建的 在它们中的任何一个被更新之前。分配仅在创建临时元组之后发生。

通过将其分解为单独的步骤,您正在改变代码的含义。

让我们看看这里发生了什么

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

比较

a = 0              # a=0
b = 1 # a=0 , b=1
a = b # a=1 , b=1
b = b+a # a=1 , b=2

关于python - 关于Python的函数教程中斐波那契数列的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15515920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com