Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme sur exercice de base de python

    8 octobre 2010 à 17:01:28

    Salut , j'ai commencer le python a l'école ( je suis en 5eme secondaire en belgique) et j'ai un petit soucis mon derniere exercice .Voici l'intitulé de l'exercice :

    Citation

    Ecrire un script qui permet de tirer 200 nombres au hasard, compris entre 0 et 100 et qui n'affiche que les multiples de 3


    Comme aide en dessous de l'énoncé on a :

    Citation

    % (modulo) représente le reste de la division ( entier)
    ex: 7%2 donne comme résultat 1 et 6%2 donne comme resultat 0


    Python me met qu'il y a une erreur dans la ligne 12

    #**********
    i = 0
    nb = 0
    res = 0
    #**********
    from random import randrange
    i = 1
    i = int(i)
    while (i <= 200) :
        nb = randrage(0,100)
        nb = int(nb)
        nb%3 = res
        res = int(num)
    if (res == 0 ):
        print nb
        i += 1
    else :
        print('fin')
    


    Merci d'avance pour votre réponse
    • Partager sur Facebook
    • Partager sur Twitter
      8 octobre 2010 à 17:04:40

      resultat = nombre % x

      Le calcul à droite, le résultat est stocké à gauche du signe égal, jamais l'inverse.
      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        8 octobre 2010 à 17:05:42

        Tu n'as pas bien compris comment s'utilise l'opérateur modulo.
        Un petit exemple pour t'aider :

        >>> def multiple_de_trois(num):
        ...     if num % 3 == 0:
        ...             print num, "est multiple de 3."
        ...     else:
        ...             print num, "n'est pas multiple de 3."
        ... 
        >>> multiple_de_trois(5)
        5 n'est pas multiple de 3.
        >>> multiple_de_trois(9)
        9 est multiple de 3.
        >>> multiple_de_trois(35)
        35 n'est pas multiple de 3.
        >>> multiple_de_trois(72)
        72 est multiple de 3.
        
        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
          8 octobre 2010 à 17:12:53

          Merci pour vos reponse , c'est encore plus rapide qu'en classe , mais je connais pas encore la fonction def ,ou pourrais-je m'eclairé dessus .Sinon , en parlant du code , j'ai l'erreur suivante : Traceback (most recent call last):
          File "N:\exe9.py", line 10, in <module>
          nb = randrage(0,100)
          NameError: name 'randrage' is not defined
          • Partager sur Facebook
          • Partager sur Twitter
            8 octobre 2010 à 17:14:51

            Ceci étant dit, ton script n'est pas tout à fait logique.

            Tout d'abord, tu transtypes en entier des trucs qui sont déjà des entiers (i, res, nb) et, à la ligne 10, tu utilises la fonction randrage() qui n'existe pas. Tu as aussi visiblement une erreur d'indentation pour ton bloc if et le else n'a pas vraiment de sens.

            Finalement, si je comprends bien l'énoncé, tu dois générer 200 nombres au hasard et, parmi ceux-ci, n'afficher que ceux se divisant par 3. Ton script génère 200 nombres aléatoires se divisant par 3.
            • Partager sur Facebook
            • Partager sur Twitter
              8 octobre 2010 à 17:22:44

              Quel est la fonction pour generer des nombres alors ?
              • Partager sur Facebook
              • Partager sur Twitter
                8 octobre 2010 à 17:24:09

                Le def dans mon exemple n'a aucune importance, il sert à définir une fonction.

                Sinon, sans définir de fonction :
                >>> 42 % 3 == 0 # 42 est divisible par 3
                True
                >>> 55 % 3 == 0 # 55 ne l'est pas
                False
                >>> 54 % 3 == 0 # 54 l'est
                True
                


                Et pour générer un nombre aléatoire, tu peux utiliser randrange , ou randint .
                • Partager sur Facebook
                • Partager sur Twitter
                Zeste de Savoir, le site qui en a dans le citron !
                  8 octobre 2010 à 17:33:21

                  Merci a tous , j'ai reussis :p
                  #**********
                  i = 0
                  nb = 0
                  res = 0
                  #**********
                  from random import randrange
                  i = 1
                  while (i <= 200) :
                      nb = randrange(0,100)
                      res = nb % 3
                      if (res == 0 ):
                          print nb
                          i += 1
                  if(i > 200):
                      print('fin')
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    8 octobre 2010 à 18:01:58

                    from random import randrange
                    i = 1
                    while (i <= 200) :
                        print(randrange(0,100, 3))
                        i+=1
                    print('fin')
                    
                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 octobre 2010 à 18:07:42

                      Tu ne réponds pas à l'énoncé fred, il faut afficher les nombres divisibles par 3 parmi un échantillon de 200 nombres aléatoires, c'est différent de 200 nombres aléatoires divisibles par 3.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Zeste de Savoir, le site qui en a dans le citron !
                      Anonyme
                        8 octobre 2010 à 18:12:18

                        Merci Nohar ;)

                        from random import randrange
                        i = 1
                        while (i <= 200) :
                            nb=randrange(0,100)
                            if nb%3: 
                                print(nb)
                            i+=1
                        print('fin')
                        


                        Ca m'amuse, moi qui n'est jamais eu de cours en info, je peux voir enfin ce qu'on demande dans les TP/TD.

                        J'espère que le PO postera souvent, histoire que je puisse voir jusque où je peux aller :p
                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 octobre 2010 à 18:17:48

                          D'un autre côté, le code de l'auteur ne répond pas à l'énoncé non plus. Comme je l'avais dit plus tôt, il affiche 200 nombres aléatoires divisibles par 3 plutôt que les nombres divisibles par 3 parmi les 200 aléatoires.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          probleme sur exercice de base de python

                          × 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