[ERREUR]- list index out of range

Résolu
djhimler Messages postés 3 Statut Membre -  
 Utilisateur anonyme -
salut, je dois programmer un truc pour demain et je suis bloqué sur cette erreur , je ne comprend pas, j'aimerai bien que l'on m'explique pourquoil'erreur se trouve au niveau du if a[i] ==1 :
voici mon programme,

a=[]

def suite3(u,n) :
    a.append(u)
    for i in range(n-1) :
            if u % 2 == 0 :
                u = u // 2
                a.append(u)
            else :
                u = 3*u+1
                a.append(u)
       
    return n
    



def trajectoire_u_0():
    u_0=[]
    i = 0
    while i< len(a):
        u_0.append(a[i])
        i += 1
        if a[i]==1:
            break
        
    print(u_0)


suite3(15,8)    
trajectoire_u_0()


merci d'avance:)

2 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    je ne connais pas python plus que ça.
    Cependant, le message d'erreur est clair, tu demandes le contenu d'une "case" de ton tableau qui n'existe pas.
    Dans beaucoup de langage, pour un tableau de n cases, les index vont de 0 à n-1

    while i< len(a): 'ici tu testes que i est strictement inférieur à len(a) (ce que j'ai appelé n au-dessus), imaginons i = n - 1
       u_0.append(a[i])'ici ok a[n-1] existe
        i += 1' i prend la valeur n
        if a[i]==1: 'aïe
            break 

    5
    1. djhimler Messages postés 3 Statut Membre
       
      merci pour ta réponse cependant comment je peux faire pour réarranger mon programme pour que i ne prenne que n-1 parceque si j'ai bien compris c'est parceque i = n que lindex n'existe pas nan ? ?
      0
    2. MTSTFCFUD
       
      Tais toi tu connais pas python comme tu l'as si bien dit Whismeril
      -1
      1. Utilisateur anonyme > MTSTFCFUD
         
        N’empêche qu’à l’epoque J’ai répondu à sa question.
        T’étais où toi?
        1