📜  python fibonacci sequence for loop - Python(1)

📅  最后修改于: 2023-12-03 14:45:57.907000             🧑  作者: Mango

Python中使用for循环实现Fibonacci数列

Fibonacci数列是一个非常经典的数列,它每一项的值等于前两项的和。具体而言,Fibonacci数列的前几项为:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

在Python中可以用for循环很方便地实现Fibonacci数列的生成。

简单实现

我们可以通过定义两个初始值来开始生成Fibonacci数列,然后不断用最后两项的和更新数列。

n_terms = int(input("请输入Fibonacci数列项数:"))

# 初始值
n1 = 0
n2 = 1
count = 2

# 判断输入的项数是否合法
if n_terms <= 0:
   print("请输入一个正整数。")
elif n_terms == 1:
   print("Fibonacci数列:")
   print(n1)
else:
   print("Fibonacci数列:")
   print(n1,",",n2,end=", ")
   for i in range(2,n_terms):
      nth = n1 + n2
      print(nth,end=" ,")
      # 更新值
      n1 = n2
      n2 = nth

这段代码通过for循环来生成Fibonacci数列,其中变量n1和n2分别表示数列的前两项,初始值为0和1。count变量用于记录生成的数列项数,一开始已经有两项,所以它的初始值为2。

需要注意的是,在for循环中,range函数的起始值为2,结束值为n_terms。这是因为我们已经有了数列的前两项,所以需要从第三项开始生成数列。

特殊实现

为了更好的展示,我们对上面代码进行一些处理,以满足特定的要求。这里,我们可以将for循环的range函数改写成while循环,生成指定范围内的Fibonacci数列。

start, end = 5, 50

n1 = 0
n2 = 1
count = 0

if start <= 0:
    print("请输入一个正整数。")
elif start == 1:
    print(n1)
    count += 1
if start != 1:
    count += 1
while n2 <= end:
    if count >= start:
        print(n1, end=" ,")
    nth = n1 + n2
    n1 = n2
    n2 = nth
    count += 1

运行以上代码,即可输出Fibonacci数列中5-50之间的数字序列。

要注意的是,如果起始值为1,则需要单独输出数列的第一项,而如果起始值不为1,则需要从第三项开始输出。

这里用到了while循环,当n2大于指定范围时,循环终止。在循环中,我们首先判断当前生成的数列项是否满足要求,如果满足,则输出该项的值。

然后,我们更新数列的序列,继续生成下一项,同时更新count变量。