Partage
  • Partager sur Facebook
  • Partager sur Twitter

variable == x ou variable != x

Sujet résolu
    15 février 2017 à 23:19:51

    Bonjour à tous, d'abord voici mon programme :

    import random

    random_stuff = random.randint(1, 2)

    print (random_stuff)

    if x != 1:

        valeur = "tu as 1"

    elif x == 1:

        valeur = "tu as 2"

    else :

        valeur = "raté"

    print(valeur)

    le résultat que j'obtient est d'abord "1" ou "2" mais après je n'ai le droit qu'à "tu as 1"

    essayer par vous même c'est peut être mon interpréteur qui fait n'importe quoi  

    si vous avez la même chose que moi, j'aimerais que quelqu'un puisse m'aider s'il vous plait

    (je répondrais à toute vos question)

    • Partager sur Facebook
    • Partager sur Twitter
      15 février 2017 à 23:45:45

      Deja quel est cette variable x non definie ?

      Si tu veux afficher la valeur trouvé par random.randint(1,2)

      Tu peux faire :

      x = random.randint  (1,2)

      print ('Tu as {}'.format (x))

      Ou alors :

      x = random.randint  (1,2)

      if x == 1:

           print ('Tu as 1')

      else:

          print ('Tu as 2')

      • Partager sur Facebook
      • Partager sur Twitter
        16 février 2017 à 7:46:48

        S'il vous plaît, utilisez le bouton </> pour insérer du code.

        @Aifais: tes conditions sont contradictoires par rapport à ce que tu veux afficher:

        if x != 1:  #Si c'est différent de 1
            valeur = "tu as 1"  #Alors vous avez 1 ??


        Et tu fais tes comparaisons sur la variable x alors que c'est random_stuff qui référence la sortie du random

        • Partager sur Facebook
        • Partager sur Twitter
        Précepte: Le mieux est l'ennemi du bien
          16 février 2017 à 8:24:47

          Salut,

          Tu peux aussi simplifier ton code :

          import random
          def got_one(): # création d'une fonction pour réutilisation future
              x = random.randint(1,2) # x = 1 ou 2
              if x == 1: # si x = 1 : 
                  return ("tu as 1") # on retourne 1 et on arrête la fonction
              return ("tu as 2") # sinon on continue l'exécution et la prochaine instruction sera "retourne 'tu as 2'"

          Mais effectivement, comme l'a dit Olygrim, ce sont surtout tes conditions qui ne sont pas bonnes, et l'utilisation de la mauvaise variable qui empêchent ton code de fonctionner :-)

          • Partager sur Facebook
          • Partager sur Twitter
          Avide de connaissances en électronique/dév/admin sys/db/réseau !
            16 février 2017 à 8:32:40

            ftassy a écrit:

            Salut,

            Tu peux aussi simplifier ton code :

            import random
            def got_one(): # création d'une fonction pour réutilisation future
                x = random.randint(1,2) # x = 1 ou 2
                if x == 1: # si x = 1 : 
                    return ("tu as 1") # on retourne 1 et on arrête la fonction
                return ("tu as 2") # sinon on continue l'exécution et la prochaine instruction sera "retourne 'tu as 2'"

            Mais effectivement, comme l'a dit Olygrim, ce sont surtout tes conditions qui ne sont pas bonnes, et l'utilisation de la mauvaise variable qui empêchent ton code de fonctionner :-)

            Je pense que tant qu'a faire ça, il vaut mieux aussi lui dire qu'une fonction est censé ne faire qu'une et une seule chose, et donc la fonction got_one ne devrait retourner que 1 ou 2 et une autre fonction devrait faire l'affichage (mais je m'égare un peu de la question initiale, désolé)



            • Partager sur Facebook
            • Partager sur Twitter

            « Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
            D. Mendeleïev

              16 février 2017 à 8:36:00

              Tu as grillé mon explication en deux temps :( Mais au moins comme ça il a les ressources pour faire quelque chose de plus propre :)
              • Partager sur Facebook
              • Partager sur Twitter
              Avide de connaissances en électronique/dév/admin sys/db/réseau !
                16 février 2017 à 8:43:33

                Héhé :magicien:
                On est d'accord :]
                • Partager sur Facebook
                • Partager sur Twitter

                « Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
                D. Mendeleïev

                  16 février 2017 à 9:33:25

                  Salut,

                  Pourquoi ne pas faire :

                  import random
                  
                  print ("Tu as "+str(random.randint(1, 2)))
                  

                  A moins que tu utilises x après ?
                  Sinon oui, tu as "n'est pas égal à 1" ^^

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    16 février 2017 à 10:11:34

                    Erw29 a écrit:

                    Salut,

                    Pourquoi ne pas faire :

                    import random
                    
                    print ("Tu as "+str(random.randint(1, 2)))
                    

                    A moins que tu utilises x après ?
                    Sinon oui, tu as "n'est pas égal à 1" ^^

                    • Parce-que ça ne respecte pas la PEP8
                    • Parce-que ça ne respecte pas le zen de python
                    • Parce-que ça ne répond pas à la question du PO

                    Il est débutant, donc la partie avec les fonctions semble prématuré...

                    @PO,

                    Comment peux-tu avoir une autre valeur que 1 ou 2 ? Je vois pas l'intérêt de ton else.

                    La seule vraie réponse est donc celle d'Olygrim

                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 février 2017 à 10:29:05

                      Je n'ai pas la prétention d'avoir la "vraie" réponse ; simplement, quand il attaquera effectivement la partie sur les fonctions, il aura déjà des billes pour comprendre un peu comment ça fonctionne.

                      je ne pense pas qu'il y ait de bonne, ou de mauvaise (situation) réponse ...



                      -
                      Edité par ftassy 16 février 2017 à 10:29:21

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Avide de connaissances en électronique/dév/admin sys/db/réseau !
                      Anonyme
                        16 février 2017 à 10:38:33

                        ftassy a écrit:

                        Je n'ai pas la prétention d'avoir la "vraie" réponse ; simplement, quand il attaquera effectivement la partie sur les fonctions, il aura déjà des billes pour comprendre un peu comment ça fonctionne.

                        je ne pense pas qu'il y ait de bonne, ou de mauvaise (situation) réponse ...

                        Sauf que ce n'est absolument pas la question ici. La seule bonne réponse, est la réponse qui répond à la question de l'auteur ;). La question du PO est la suivante

                        AifaisAifais a écrit:

                        le résultat que j'obtient est d'abord "1" ou "2" mais après je n'ai le droit qu'à "tu as 1"

                        essayer par vous même c'est peut être mon interpréteur qui fait n'importe quoi  

                        Donc la réponse à lui donner déjà, c'est que ce n'est pas l'interpréteur qui fait n'importe quoi, mais le PO lui même. Un interpréteur python n'est pas plus devin qu'un interpréteur perl ou d'autres langages.

                        Ensuite la seule réponse à donner a déjà été donnée, celle d'Olygrim qui est en rapport avec le code qu'il a écrit. Le PO espère un retour gagnant alors qu'il ne s'est pas rendu compte que l'erreur se trouve dans son code.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 février 2017 à 10:51:44

                          oldProgrammer a écrit:

                           La seule bonne réponse, est la réponse qui répond à la question de l'auteur ;)

                          Qui n'a posé aucune question. Mais c'est un débat stérile, je propose que nous en restions là !
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Avide de connaissances en électronique/dév/admin sys/db/réseau !
                            16 février 2017 à 13:49:25

                            Merci à tous pour vos réponse.

                            J'avais fait pas mal d'erreur effectivement et j'ai même réussi à les corrigé mais vos version sont bien plus simple.

                            Ça m'apprendra à faire du python tard le soir

                            • Partager sur Facebook
                            • Partager sur Twitter

                            variable == x ou variable != x

                            × 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