📅  最后修改于: 2023-12-03 14:45:57.907000             🧑  作者: Mango
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变量。