IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Exercices pendules python


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Exercices pendules python
    Bonjour je dois réaliser un jeux de pendule, j'ai deux erreur que j'arrive pas à bien corriger :

    Ligne 78 : ma condition pour dire qu'on a trouvé le mot n'est pas correct

    Ligne 89 : j'ai comme erreur que New_score n'est pas définie ... pourtant je le fait dans la fonction score ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    import random
     
    import os
     
    import pickle
     
    os.chdir("C:/Users/Carlos/Documents/python")
     
    Nb_Partie = 0
     
    Suite_Jeux = 0
     
    MAX_ESSAI = 8
     
    liste = ['chat','chameau','orangoutan','elephant','girafe','dinosaure']
     
    liste = [mot for mot in liste if len(mot)<= 8]
     
    Choix_mot = random.choice(liste)
     
    compteur = 0
     
    chaine1 =['*' for x in range(len(Choix_mot))]
     
     
     
    def score(valeur):
     
        # Je vais enregistrer le score dans un dictionnaire
     
        nom = input("Veuillez rentres votre nom")
     
        New_score = {}
     
        New_score[nom] = 8 - valeur
     
        print('Votre score est de ',New_score[nom])
     
     
     
    while(Suite_Jeux == 0):
     
        liste = [mot for mot in liste if len(mot)<= 8]
     
        Choix_mot = random.choice(liste)
     
        compteur = 0
     
        chaine1 =['*' for x in range(len(Choix_mot))]
     
        # Il faut que j'appelle le fichier donnée pour reinitialiser toutes mes variables
     
        while(compteur < MAX_ESSAI):
     
            Guess_Word = input("Veuillez rentrer une lettre que vous pensez etre dans le mot")
     
            while(len(Guess_Word)>2):
     
                Guess_Word = input("Vous aves rentres plus de 2 lettres , veuillez rentrer une seul lettre svp que vous pensez etre dans le mot")
     
            compteur +=1
     
            for i , elt in enumerate(Choix_mot):
     
                if Guess_Word == elt:
     
                    chaine1.insert(i,Guess_Word)
     
                    del(chaine1[i+1])
     
                    print(chaine1[i])
     
                else:
     
                    print(chaine1[i])
     
     
            #Condition d'arret pour dire qu'on a trouvé le mot
            if chaine1[len(chaine1)- 1] != '*':
     
                print('Mot trouvé')
     
                score(compteur)
     
                with open('donnees','wb') as fichier:
     
                    mon_pickler = pickle.Pickler(fichier)
     
                    mon_pickler.dump(New_score)
     
     
                compteur = 9 #Valeur supérieur à MAX_ESSAI$
     
                Suite_Jeux = input("Si vous souhaitez recommencer une autre partie tapez sur 0 si pas sur un autre caracter")
     
                Suite_Jeux = int(Suite_Jeux)

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Salut,

    New_score est bien défini à l'intérieur de la fonction Score, mais pas ailleurs. Autrement dit c'est une variable locale. Pour corriger ce problème tu pourrais la rendre globale, mais j'ai entendu dire que cela était une mauvaise pratique. Personnellement je n'ai jamais eu besoin de le faire. L'autre solution c'est de revoir la structure du code en gardant en tête que tout ce qui est défini dans une fonction/méthode reste dans cette fonction/méthode, à l'exception des attribut d'objet et des valeurs sorties par les fonctions via return.

    Pour ce qui est de la condition d'arrêt: faire chaine1[len(chaine1)- 1] revient à faire juste chaine1[-1]. Ici tu satisfais la condition si et seulement si la dernière lettre n'est pas "*". Est-ce bien ce que tu veux? J'aurais tendance à m'arrêter quand il n'y a plus d'étoiles nulle part. Ce qui pourrait se traduire par if not '*' in chaine1:.

    Ju

Discussions similaires

  1. [Python 3.X] [Histogramme]exercice Apprendre Python de G. Zwinnen
    Par bergenist dans le forum Général Python
    Réponses: 4
    Dernier message: 15/10/2015, 00h43
  2. Exercice Tp Python Licence
    Par lorli911 dans le forum Général Python
    Réponses: 4
    Dernier message: 01/05/2015, 18h29
  3. Exercice en python besoin de votre aide
    Par Takahitekun dans le forum Général Python
    Réponses: 6
    Dernier message: 14/01/2013, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo