[python] Réutiliser une variable dans une autre fonction ?!
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

[python] Réutiliser une variable dans une autre fonction ?!



  1. #1
    Phizik

    [python] Réutiliser une variable dans une autre fonction ?!


    ------

    Bonjour,

    vos lumières m'ont bien aidés hier mais aujourd'hui je me confronte à un nouveau problème, j'ai beau cherché, il y a une erreur quelque part que je ne cerne pas, ni moi, ni ceux à qui j'ai pu montré le programme,
    peut être que vous saurez résoudre celui-ci !
    Le problème est que je n'arrive pas à faire communiquer les variables d'une fonction à une autre ! Depuis hier je m'acharne là-dessus, je ne trouve pas !
    Je calcule 2 valeurs "resultatrouge" et "resultatbleu" dans la fonction "deuxde", seulement, la fonction "manche" ne reconnait pas ces variables et n'affiche rien durant l'exécution du programme !
    Même problème pour la valeur "score" qui ne s'affiche pas non plus !
    Merci infiniment en avance,

    Romain

    Le programme :
    Code:
    from turtle import *
    from random import *
    
    def carre(x,y,n):
        speed(100)
        up()
        goto(x,y)
        down()
        for i in range(4):
            forward(n)
            left(90)
    
    def carreplein(x,y,n,couleur):
        begin_fill()
        color(couleur)
        carre(x,y,n/6)
        end_fill()
        color("black")
    
    def dessinede(x,y,couleur,chiffre):
        carre(x,y,120)
        if chiffre in [1, 3, 5]:
            carreplein(x+50,y+50,120,couleur)
    
        if chiffre in [2, 3, 4, 5, 6]:
            carreplein(x+15,y+15,120,couleur)
            carreplein(x+85,y+85,120,couleur)
    
        if chiffre in [4, 5, 6]:
            carreplein(x+15,y+85,120,couleur)
            carreplein(x+85,y+15,120,couleur)
    
        if chiffre == 6:
            carreplein(x+15,y+50,120,couleur)
            carreplein(x+85,y+50,120,couleur)
    
    def deuxde(x,y,couleur):
        if couleur == "red":
            chiffre1r = randint(1,6)
            dessinede(x,y,couleur,chiffre1r)
            chiffre2r = randint(1,6)
            dessinede(x+150,y,couleur,chiffre2r)
            resultatrouge = chiffre1r + chiffre2r
            print("rouge:",resultatrouge)
            return resultatrouge
        else:
            chiffre1b = randint(1,6)
            dessinede(x,y,couleur,chiffre1b)
            chiffre2b = randint(1,6)
            dessinede(x+150,y,couleur,chiffre2b)
            resultatbleu = chiffre1b + chiffre2b
            print("bleu:",resultatbleu)
            return resultatbleu
    
    def manche(x,y):
        deuxde(x-400,y+240,"red")
        deuxde(x+125,y+240,"blue")
        up()
        goto(x-68,y+280)
        down()
        score = 0
        if resultatrouge > resultatbleu:
            resultatmanche = "GAGNE"
            score = score +1
            return score
        if resultatrouge < resultatbleu:
            resultatmanche = "PERDU"
            score = score -1
            return score
        if resultatrouge == resultatbleu:
            resultatmanche = "EGALITE"
            return score
    
        write(resultatmanche, font=("Arial",24,"normal"))
    
    def jeu(x,y):
        n = int(input("Combien de manche ?"))
        for i in range(n):
            score = manche(x,y)
            y = y-150
        up()
        goto(x-400,y-10)
        down()
        write("SCORE:",score, font=("Arial",27,"normal"))
    
    jeu(0,0)
    exitonclick()

    -----
    Dernière modification par Jack ; 18/10/2020 à 17h05. Motif: Balises code

  2. #2
    Jack
    Modérateur

    Re : Réutiliser une variable dans une autre fonction ?!

    Comme déjà évoqué dans une précédente discussion, il faut placer le code entre balises code.
    Il est également demandé de préciser le langage utilisé.

  3. #3
    Phizik

    Re : Réutiliser une variable dans une autre fonction ?!

    Merci ! Ai-je la possibilité de modifier le message pour y indiquer le language ?

  4. #4
    Jack
    Modérateur

    Re : Réutiliser une variable dans une autre fonction ?!

    Non, mais il faut le faire dès la présentation du code.
    Je vais modifier le titre en conséquence.

  5. A voir en vidéo sur Futura
  6. #5
    pm42

    Re : [python] Réutiliser une variable dans une autre fonction ?!

    Tu définis une variable dans une fonction : elle n'est visible que par cette fonction et c'est normal.
    Soit tu les mets en variable globale, en dehors de toute fonction mais c'est à éviter.

    Soit tu récupères le résultat des tes appels à la fonction deuxde dans manche.
    Actuellement tu appelles la faction deuxde qui fait un return et tu ignores ce résultat.

  7. #6
    polo974

    Re : [python] Réutiliser une variable dans une autre fonction ?!

    En plus de ce qu'a déjà indiqué pm42,

    tu as codé 2 fois quasiment la même chose dans deuxde(...), ce qui n'est pas utile... tu le verras dès que tu exploiteras le return..
    Jusqu'ici tout va bien...

Discussions similaires

  1. Est-il possible de réutiliser une télécommande sur un autre portail
    Par invite18d2c7dc dans le forum Électronique
    Réponses: 5
    Dernier message: 20/03/2015, 20h55
  2. comment déterminer une densité d'une variable qui est en fonction d'une autre variable
    Par invite1e252b6d dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 11/09/2010, 21h30
  3. omment déterminer une densité d'une variable qui est en fonction d'une autre variable
    Par invite1e252b6d dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 11/09/2010, 14h41
  4. comment déterminer une densité d'une variable qui est en fonction d'une autre variable
    Par invite1e252b6d dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 04/09/2010, 21h40
  5. Comment insérer une fonction Matlab dans les paramètres d'entrée d'une autre fonction ??
    Par inviteac36b108 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 04/01/2010, 08h16