RecursionError: maximum recursion depth exceeded - comment surmonter ?
📁 Sujets avancés sur Python, Question simple de débutant, Conseils et astuces avancés, IA
Il y a un problème dans ; il y a sa solution, où par l'élégance Python a "vaincu" C#, mais voilà qu'à x=512 déjà apparaît RecursionError : que conseillez-vous, pères ? Comment surmonter, si on veut calculer pour x=1024 par exemple ?
import functools
from math import sqrt
@functools.lru_cache()
def f(x):
if x <= 1: return 0
return 1 + min([ f(m + x // m - 2) for m in range E,F,A,B donne le tuple (5,6,1,2), qui n'a plus aucun rapport avec les variables originales et n'est pas lié à elles.
foo = E,F,A,Bprint(foo) # => (5, 6, 1, 2)E = -777print(foo) # toujours => (5, 6, 1, 2)La syntaxe A,B,C,D = — c'est le déballage (dans ce cas d'un tuple) — qui assigne séquentiellement aux variables les valeurs d'une liste, d'un tuple ou de tout autre objet itérable (on peut mettre = range(4), par exemple), situé après le signe égal. Et ce tuple qui se trouve à droite n'a déjà plus aucun lien avec les variables originales.
Connectez-vous pour laisser une réponse