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')
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.
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
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.
#**********
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')
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.
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.
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.
Blond, bouclé, toujours le sourire aux lèvres...