Se connecter / S'enregistrer

Résolu Problème de programme Python. Pouvez-vous m'aider ?

Solutions (6)
Tags :
  • Python
  • Numérique
  • Programme
  • Programmation
|
Salut,

Je me suis lancé dans un programme et la je rame ( à ce niveau la c'est plus des rames mais des cuillères...).
Voyez plutôt par vous mêmes. Je souhaiterai juste que quelqu'un m'explique ou se situe l'erreur dans mon code.

  1. co = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
  2. print("Entrez un code alpha-numérique")
  3. a = str(input())
  4. b = 0
  5. c = 0
  6. d = 0
  7. e = 0
  8. f = 0
  9. g = 0
  10. h = 0
  11. z = 0
  12. code = co[b], co[c], co[d], co[e], co[f], co[g], co[h]
  13. code = str(code)
  14. while a != code:
  15. print(co[b], co[c], co[d], co[e], co[f], co[g], co[h])
  16. b = b + 1
  17. if code in a:
  18. print("le code est : ", code)
  19. if b == 36 and c != 36 :
  20. c = c + 1
  21. b = 0
  22. if b == 36 and c == 36 and d != 36:
  23. b = 0
  24. c = 0
  25. d = d + 1
  26. if b == 36 and c == 36 and d == 36 and e != 36:
  27. b = 0
  28. c = 0
  29. d = 0
  30. e = e + 1
  31. if b == 36 and c == 36 and d == 36 and e == 36 and f != 36:
  32. b = 0
  33. c = 0
  34. d = 0
  35. e = 0
  36. f = f + 1
  37. if b == 36 and c == 36 and d == 36 and e == 36 and f == 36 and g != 36:
  38. b = 0
  39. c = 0
  40. d = 0
  41. e = 0
  42. f = 0
  43. g = g + 1
  44. if b == 36 and c == 36 and d == 36 and e == 36 and f == 36 and g == 36 and h != 36:
  45. b = 0
  46. c = 0
  47. d = 0
  48. e = 0
  49. f = 0
  50. g = 0
  51. h = h + 1
  52. if b == 36 and c == 36 and d == 36 and e == 36 and f == 36 and g == 36 and h == 36 and i != 36:
  53. b = 0
  54. c = 0
  55. d = 0
  56. e = 0
  57. f = 0
  58. g = 0
  59. h = 0
  60. i = i + 1


Et oui c'est laborieux mais bon. Au fait je n'ai pas fait de commentaire dans le code ( je pense que vu le niveau du programme, ce n'est pas nécessaire)

A au fait je n'ai rien contre le débuggeur de IDLE mais le :
Traceback (most recent call last):
File "C:\Users\Björn\Desktop\Programation\Python\programmes\findcode.py", line 18, in <module>
print(co, co[c], co[d], co[e], co[f], co, co[h])
IndexError: list index out of range.

Ne m'éclaire pas trop.
  • Pascaldata a édité ce message
  • Meuniers a édité ce message
Contenus similaires
Meilleure solution
partage
|
L'erreur est sur la ligne : print(co, co[c], co[d], co[e], co[f], co, co[h])
L'erreur t'indique qu'un des index (b,c,d,e,f,g ou h) est un index qui sort du tableau, c'est-à-dire dans ton cas si un index est < 0 ou > 36.
Je te suggère de faire un print des index avant pour comprendre le problème.


  • Commenter cette solution |
Score
0
òh
òi
|
Si les types sont incompatibles, tu as une erreur, alors de la même façon affiche les 2 objets que tu compares, et tu trouveras certainement des différences.
D'autant que tu compares 2 chaines de caractères, donc avec un simple espace ajouté, la comparaison est différente. Si c'est un problème de chaine de caractère, reconstruit les chaines toi-même sans faire directement des str().
  • Commenter cette réponse |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par DAAEz.
  • Commenter cette réponse |
Score
0
òh
òi
|
J'ai réglé le problème de l'index error, mais maintenant la boucle est infinie et lorsque "a" semble egal à "code", la boucle continue. je pense donc que le type des deux objet sont different.
  • Commenter cette réponse |
Score
0
òh
òi
|
Je ne sait pas à quoi correspond le tableau dont tu parle.
Et effectivement il manquait la liste "co"
  • Commenter cette réponse |
Score
0
òh
òi
|
Déjà utilise le tag de code pour ne pas perdre l'indentation, c'est plutôt gênant en python puisque c'est ce qui définit les blocs.

Ensuite, qu'est-ce que c'est que "co"? que contient-il?

Au fait, l'erreur indique que tu essaies de lire en dehors du tableau.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS