Menu

[ERREUR]- list index out of range [Résolu]

Messages postés
3
Date d'inscription
lundi 15 janvier 2018
Dernière intervention
15 janvier 2018
-
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:)
Afficher la suite 

Votre réponse

2 réponses

Messages postés
12373
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
0
Merci
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 

djhimler
Messages postés
3
Date d'inscription
lundi 15 janvier 2018
Dernière intervention
15 janvier 2018
-
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 ? ?
Tais toi tu connais pas python comme tu l'as si bien dit Whismeril
Whismeril
Messages postés
12373
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
> MTSTFCFUD -
N’empêche qu’à l’epoque J’ai répondu à sa question.
T’étais où toi?
Commenter la réponse de Whismeril
Messages postés
12373
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
0
Merci
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
    if a[i]==1: 
        break
    i += 1

Normalement, ceci ne plantera pas, mais je ne sais pas ci c'est ce que tu veux faire.
djhimler
Messages postés
3
Date d'inscription
lundi 15 janvier 2018
Dernière intervention
15 janvier 2018
-
ouai! génial merci beaucoup c'est exactement ce que je voulais faire encore merci d'avoir pris du temps pour moi!
Whismeril
Messages postés
12373
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
-
de rien
Commenter la réponse de Whismeril