我正在学习一些 Python 基础知识并在上面做练习。其中一个是执行斐波那契数列,我使用 awhile
和一对操作符解决了这个问题+=
。我的问题是是否可以使用loops
.
a=1
b=1
print(a)
print(b)
while True:
a+=b
b+=a
if b>1000:
break
print(a)
print(b)
Salida:
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
提前致谢 :)
正如您现在所拥有的那样,您正在生成两个两个的数字。使其更简单的一种方法是一个一个地生成它们并使用元组赋值:
也可以询问值的个数,使用for循环:
在这种情况下,通过输入要求用户输入他希望生成的序列的值的数量。用户输入的值存储在一个变量中,在这种情况下我放置了“num”。int 允许您将此值作为整数处理。两个变量“a”和“b”分别以初始值0和1建立,这将允许计算序列的以下值。“for”允许重复计算,直到达到“num”的值,即用户想要的序列值的个数。在这种情况下,“a”表示序列的新计算值,并作为“b”与“a”之前的值之和得到,即将序列的两个之前的值相加得到新的价值。
另一方面,也可以使用 python 列表使用更数学的解决方案:
另请注意,斐波那契数列必须从 0、1 开始。