problème fonction python?
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

problème fonction python?



  1. #1
    inviteb6317f7f

    problème fonction python?


    ------

    Alors bonjours,
    j'essaie de faire un programme pour réviser du vocabulaire a partir d'un dictionnaire de mot sous forme de liste (désolé pour ceux qui sont allergique c est de l allemand ^^). Mon problème c est que il me dit que mes variables (langue et nb_rep) de mes premières fonctions ne sont pas définies quand je veux les utiliser dans les fonctions d'après. Je pense que le problème vient que j ai pas trop compris comment bien utiliser les fonction. du coup si qqn a du temps pour m expliquer je suis preneur...

    Code:
    #programme de flash-cards
    from random import  randint
    # création d'un dictionnaire normalement plus tard a partir d un fichier CSV
    maliste = [     ['nah','proche'],
                    ['wunderbar','magnifique'],
                    ['grün','vert'],
                    ['hoch','haut'],
                    ['wenig','peu'],
                    ['warm','chaud']            ]
    
    def choix_langue ():
        langue = int(input('En quelle langue devez vous donnez la traduction?\nFrancais(1)\nAllemand(2)'))
        if langue != 1 and langue != 2:
            choix_langue()
        return langue
    def choix_rep ():
        nb_rep = int(input('Commbien de mots devez vous réviser?'))
        if nb_rep > 10:
            nb_rep = choix_rep()
        return nb_rep
    
    def session ():
        for i in range(1):#(nb_rep):
            couple_mot = randint(0, len(maliste)-1)
            if langue == 1:
                mot_a_traduir = maliste[couple_mot][0]
                mot_demande = maliste[couple_mot][1]
                mot_entre = input('Quelle est la traduction de '+str(mot_a_traduir)+' ?')
                comparaison(mot_demande, mot_entre)
    def comparaision (mot_demande, mot_entre):
        espace = abs(len(mot_entre) - len(mot_demande))
        mot_corrige = ' '
        if len (mot_demande) < len(mot_entre): # ajoute des espace au mot le plus long pour qu il aient le meme nombre de caracteres (sinon il on pas la meme nombre de terme et ca plante pour la comparaison)
            for i in range(len(mot_entre)):
                mot_demande.append(' ')
        elif len (mot_demande) > len (mot_entre): 
            for i in range(len(mot_demande)):
                mot_demande.append(' ')
        for i in range (len (mot_demande)): #compare les lettres une a une (le probleme cest que si il y a une lettre en plus ou en moins ca decale tout et tout le reste du mot est faux)
            if mot_demande[i] == mot_entre[i]:
                mot_corrige += mot_entre[i]
            else :
                mot_corrige += '-'
        print (mot_corrige)
        return mot_corrige
    choix_langue()
    choix_rep()
    session()

    -----

  2. #2
    pm42

    Re : problème fonction python?

    C'est normal. Quand tu définis une variable dans une fonction, elle n'est pas visible de l'extérieur. Sinon, on se retrouverait avec des cas tordus : tu définis une variable toto dans une fonction à toi et tu appelles une autre fonction écrite par quelqu'un d'autre et il a aussi une variable toto qu'il modifie.
    Et donc, il changerait la tienne.

    Dans ton cas, ta méthode choix_langue() renvoie la langue mais tu l'ignores dans ton code.
    Tu devrais faire :

    Code:
    langue = choix_langue()
    nb_rep = choix_rep()
    session(langue, nb_rep)
    Et modifier session() pour qu'elle prenne langue et nb_rep comme arguments.

  3. #3
    inviteb6317f7f

    Re : problème fonction python?

    Merci beaucoup du coup ca marche beaucoup mieux ^^

Discussions similaires

  1. [Python] Problème de lag de programme et essai de Timer python
    Par Loupsio dans le forum Programmation et langages, Algorithmique
    Réponses: 20
    Dernier message: 26/01/2018, 16h14
  2. fonction mystere (python)
    Par invite361bd656 dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 15/03/2016, 22h21
  3. Fonction et liste Python
    Par invite9629fcad dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 26/01/2016, 10h27
  4. Fonction onscreenclick sur Python
    Par inviteea39d9bf dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 05/10/2015, 10h21
  5. Fonction ID3 python
    Par invite13fdc4b0 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 19/09/2015, 19h01