J'essaye d'écrire un programme pour imprimer les 100 premiers nombres de Fibonacci. Ceci est mon code:Je n'arrive pas à faire fonctionner mon programme de séquence Fibonacci en Python
def main():
print("The first 100 Fibonacci numbers are: ")
fibonacciList = (0,0,1)
loop = False
while not loop:
listLength = len(fibonacciList)
newFibonacci = fibonacciList[-1] + fibonacciList[-2]
fibonacciList = newFibonacci + fibonacciList
if (listLength > 103):
loop = true
print(fibonacciList)
main()
Quand je le lance, je reçois l'erreur ci-dessous se référant à la ligne fibonacciList = newFibonacci + fibonacciList
:
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'
Je ne comprends pas ce qui ne va pas.
P.S .: Les deux zéros dans la liste de Fibonacci sont là pour empêcher quelques autres erreurs que j'ai eues plus tôt.
Dans la ligne 'fibonacciList = newFibonacci + fibonacciList', vous effectuez '+' sur 'newFibonacci' qui contient' int' valeur et 'fibonacciList' qui est un tuple –
Ajouter deux zéros à la liste n'est pas la bonne façon de résoudre tout problème que vous avez. Une seule séquence définie par F (n) = F (n-1) + F (n-2) commence par 2 0s: la liste infinie de 0s. – chepner
'fibonacciList = (* fibonacciList, newFibonacci)' pourrait être plus proche de ce que vous cherchez –