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

Signaler
Messages postés
3
Date d'inscription
lundi 15 janvier 2018
Statut
Membre
Dernière intervention
15 janvier 2018
-
Messages postés
14458
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 juillet 2020
-
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

Messages postés
14458
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 juillet 2020
553
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 

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 64897 internautes nous ont dit merci ce mois-ci

Messages postés
3
Date d'inscription
lundi 15 janvier 2018
Statut
Membre
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
Messages postés
14458
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 juillet 2020
553 > MTSTFCFUD
N’empêche qu’à l’epoque J’ai répondu à sa question.
T’étais où toi?
Messages postés
14458
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 juillet 2020
553
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.
Messages postés
3
Date d'inscription
lundi 15 janvier 2018
Statut
Membre
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!
Messages postés
14458
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 juillet 2020
553
de rien