fibonacci序列Python的计数程序

2024-09-30 02:21:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想我要做的是从一个定义的列表中显示一个select部分。目前我正在处理的是:

#fibonacci sequence algorithm, user stops by either 
#entering a maximum Fibonacci value not to exceed or
#a total count that the sequence of numbers must not
#exceed. Use a loop that allows User to repeat program
#as much as they wish, asking if they would like to 
#repeat the program each time. Validate that User input
#is either a yes or a no and only allow User to continue
#once a correct response has been given.
import array

array.listOfFibSeq = ['0','1','1','2','3','5','8','13','21','34','55','89','144','...']
startingNumber = ''
endingNumber = ''
continueYes = ''

def getStartingNumber():
    print('Please enter a valid starting number of the Fibonacci Sequence')
    print(listOfFibSeq)
    startingNumber = input()

def getEndingNumber():
    print('Please enter a valid ending number the the Fibonacci Sequence')
    print(listOfFibSeq)
    endingNumber = input()

我不知道该怎么做,但我相信我正在尝试用斐波纳契数列显示(例如)3到89,或者做一些类似的事情:

^{pr2}$

或者我应该用for循环显示Fib序列的一个范围吗?在


Tags: orofthetoinputthatnotfibonacci
1条回答
网友
1楼 · 发布于 2024-09-30 02:21:47

在用户输入一个范围之前,没有合理的方法来预计算fibonacci序列-您应该动态地这样做。在

一种简单的方法是使用一个函数来计算给定的(a, b)的序列,一直到end,丢弃直到start的所有内容。在

我更喜欢发电机方法:

import itertools
def fib():
    a, b = 0, 1
    while 1:
        yield a
        a, b = b, a + b

# Print the first 10 values of the sequence
for i in itertools.islice(fib(), 0, 10):
    print(i)

或者,在你的情况下,类似于:

^{pr2}$

相关问题 更多 >

    热门问题