Erreur invisible!
Résolu/Fermé
iron uchiwa
Messages postés
57
Date d'inscription
mercredi 24 juillet 2013
Statut
Membre
Dernière intervention
17 février 2016
-
29 avril 2014 à 16:55
iron uchiwa Messages postés 57 Date d'inscription mercredi 24 juillet 2013 Statut Membre Dernière intervention 17 février 2016 - 2 juin 2014 à 16:04
iron uchiwa Messages postés 57 Date d'inscription mercredi 24 juillet 2013 Statut Membre Dernière intervention 17 février 2016 - 2 juin 2014 à 16:04
A voir également:
- Erreur invisible!
- Erreur 0x80070643 - Guide
- Caractère invisible - Forum Windows
- Word, caractere invisible ° ✓ - Forum Word
- Iptv erreur de lecture - Forum TV & Vidéo
- Dossier invisible - Guide
2 réponses
JulienJust
Messages postés
139
Date d'inscription
mardi 25 juin 2013
Statut
Membre
Dernière intervention
2 septembre 2014
18
30 avril 2014 à 09:44
30 avril 2014 à 09:44
Bonjour,
En fait l'erreur est bien visible: le problème est le "if".
Donc si on retire la boucle "while" et la "if" pour les remplacer par un "for" tu veras que ça marche nickel :)
En fait l'erreur est bien visible: le problème est le "if".
Donc si on retire la boucle "while" et la "if" pour les remplacer par un "for" tu veras que ça marche nickel :)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def changeCar(ch, cal, ca2, end = -1):
"fonction qui remplace les car cal par ca2 dans ch"
if end == -1:
end = len(ch);
nch = "";
for i in range(0, end):
if ch[i] == cal:
nch = nch + ca2;
else:
nch = nch + ch[i];
i = i+1;
return nch
phrase = "aides moi a changer les caracteres de cette phrase svp.."
print changeCar(phrase," ","*");
pols12
Messages postés
1143
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
31 juillet 2019
119
2 mai 2014 à 11:22
2 mai 2014 à 11:22
Salut
Le problème est très courant et pourtant très simple. Tu as l'erreur "index out of range" qui signifie que tu demande à accéder à un élément de la liste qui n'existe pas.
Il faut que tu te rappelles de deux choses :
- len() te donne le nombre de caractères d'une chaîne, donc len("de")=2
- une chaîne de caractère est une liste et comme toute liste, le premier élément a l'index 0 ET PAS 1 !
Ca veut dire que si tu fait une boucle qui va de 0 à len("de") en affichant un les caractère, Python va vouloir afficher l'élément d'index 0, le "d", l'élément d'index 1, le "e" puis l'élément d'index 2 qui n'existe pas. Tu as alors l'erreur "index out of range". Donc deux choix : while (i<=len("de")-1) ou bien while(i<len("de")
Je pense que tu devrais être capable d'adapter ça à ton problème. ;) Sinon re-poste ici et j'essaierai d'être plus clair.
Le problème est très courant et pourtant très simple. Tu as l'erreur "index out of range" qui signifie que tu demande à accéder à un élément de la liste qui n'existe pas.
Il faut que tu te rappelles de deux choses :
- len() te donne le nombre de caractères d'une chaîne, donc len("de")=2
- une chaîne de caractère est une liste et comme toute liste, le premier élément a l'index 0 ET PAS 1 !
Ca veut dire que si tu fait une boucle qui va de 0 à len("de") en affichant un les caractère, Python va vouloir afficher l'élément d'index 0, le "d", l'élément d'index 1, le "e" puis l'élément d'index 2 qui n'existe pas. Tu as alors l'erreur "index out of range". Donc deux choix : while (i<=len("de")-1) ou bien while(i<len("de")
Je pense que tu devrais être capable d'adapter ça à ton problème. ;) Sinon re-poste ici et j'essaierai d'être plus clair.
iron uchiwa
Messages postés
57
Date d'inscription
mercredi 24 juillet 2013
Statut
Membre
Dernière intervention
17 février 2016
15
2 juin 2014 à 16:04
2 juin 2014 à 16:04
Je n'avais pas vu le dernier message, impossible d'être plus clair! Comprendre d'où viens l'erreur m'éviteras de la refaire, merci beaucoup pour ta patience ;)
1 mai 2014 à 20:33