Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pas d'erreur d'index?

Sujet résolu
    25 juillet 2011 à 19:47:10

    Bonsoir.

    Je me suis récemment mis au python. Une merveille. Syntaxe simple, tout coule de source par rapport au C.

    Ma question de ce soir vise une chose curieuse que je viens de remarquer. J'essaie de faire l'exercice sur le pendu, du big tuto officiel. Je n'ai pas regardé la correction, aussi ce que je fais est peu être dégueulasse.

    Voilà mon code (avec beaucoup des lignes superflues, pour le débugage):

    #!/usr/bin/python
    
    try:
    	from donnees import *
    	print("Importation du dictionnaire réussie")
    except:
    	print("Problème avec l'importation du dictionnaire")
    
    from random import randrange
    
    
    print("Le jeu commence. Un mot est choisi au hasard dans le dico")
    longueur = len(dico)
    print(longueur)
    
    
    print(dico[0])
    print(dico[1])
    
    mot = dico[randrange(len(dico))]
    
    
    print(mot)
    print("Longueur du mot:", len(mot))
    
    
    
    affiche = str()
    
    for lettre in mot:
    	affiche += '*'
    
    
    
    print(affiche)
    print("Longueur des étoiles:", len(affiche))
    


    Le truc curieux, c'est quand je fais ça:

    mot = dico[randrange(len(dico))]

    J'aurais plutôt fait ça à la place:

    mot = dico[randrange(len(dico)-1)]

    Parce que quand je lance mon script, len(dico) me retourne 2 (je n'ai mis que deux mots dans le dico pour commencer). Donc la fonction randrange devrait me retourner soit 0, soit 1, soit 2. Et avec dico[2], je sors de la chaîne. Mais après des tests, je crois que c'est mot = dico[randrange(len(dico))] la bonne solution.

    Pourriez vous m'expliquer pourquoi? À cause de la fonction randrange?
    • Partager sur Facebook
    • Partager sur Twitter
    http://maymayhem.fr/
    Anonyme
      25 juillet 2011 à 20:14:09

      En fait, randrange(10) va retourner un entier au hasard entre 0 et 9, pas entre 0 et 10.

      Pour le pourquoi, lis la doc :) .
      • Partager sur Facebook
      • Partager sur Twitter
        25 juillet 2011 à 20:24:07

        Ok. Ma question était bête en fait. Merci à toi.
        • Partager sur Facebook
        • Partager sur Twitter
        http://maymayhem.fr/

        Pas d'erreur d'index?

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown