SO ci-dessous est mon script, j'essaie de créer une fonction que pour les chiffres 1-7, si i = 1, puis a, si i = 2, puis b, si j'étais> 2, puis b + a ** 2 donc ci-dessus est ma fonction, donc ce que j'avais attendu est
pour Cependant, avec mon script, il continue Erreur de "index de liste hors de portée", peut-on aider avec elle? P> P> générate_numbers (0,1) code>
Je peux obtenir une liste [0, 1, 1, 2, 5, 27, 734] code>
qui est generate_numbers (0, 1) == [0, 1, 1, 2, 5, 27, 734] code> p>
3 Réponses :
Vous pouvez simplement commencer par la liste initialisée à [A, B] code>. def generate_numbers(a, b, n=5):
xs = [a, b]
for _ in range(n):
xs.append(xs[-2] + xs[-1]**2)
return xs
L'exception sera Indexer Ce qui l'a causé?
Dans votre dernier état, l'indice de f est I-1, supposons que j'y ait 3, l'index devrait donc être deux et f [2] n'est pas défini car vous n'avez pas défini de [2]! p>
afin de corriger votre code, ceci est mon code p> parce que Python utilise index zéro comme premier élément p> p> p>
Votre code: Code corrigé: p> une autre possibilité: p>
L'erreur se produit lorsque vous essayez d'accéder au F [I-1] lorsque j'y est 3. À ce moment-là, F ne contient que 2 éléments.
Votre problème de problème doit être modifié! Votre description actuelle implique que, pour tout i> 2, la valeur est B + A ** 2 (mais vous voulez dire la valeur précédente de la liste plus le carré de la valeur de la valeur deux positions avant!