Partage
  • Partager sur Facebook
  • Partager sur Twitter

Python - fonction randint() et librairie random

10 avril 2008 à 13:31:40

Bonjour à tous!

Je dois écrire un programme Python qui permet à l'utilisateur de deviner un nombre compris entre 100 et 500 mais je dois utiliser la fonction randint() avec la librairie random pour trouver le nombre secret.

Pourriez-vous m'aider à trouvez le bon programme et à m'en dire plus sur la librairie random et la fonction randint ? Je ne les ai jamais utilisé et j'ai rien trouvé à leur sujet..

Merci!!
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
10 avril 2008 à 13:37:10

  1. import random
  2. random.randint.__doc__
  3. >>>'Return random integer in range [a,b], including both end point


donc pour tirer un nombre au hasard :
  1. import random
  2. random.randint(100,500)


Après pour le reste du programme c'est juste une boucle, quelques tests
  • Partager sur Facebook
  • Partager sur Twitter
10 avril 2008 à 13:55:48

Excusez moi mais je ne comprends toujours pas à quoi correspond la fonction randint.
Mon programme:

nbr=input("Devinez le nombre secret:")

import random
random.randint(100,500)

cpt=cpt+1
while nbr<100 or nbr>500:
nbr = input("Essayer encore!:")
cpt=cpt+1
print "Gagné un %d coup(s)" %(cpt)


Pourriez-vous le corriger?

Merci.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
10 avril 2008 à 14:01:08

Déja utilise les balises code sur le forum pour ton code python.
La ton programme dit "gagner" des que l'utilisateur donne un nombre entre 100 et 500 alors que je pense il faut que l'utilisateur trouve un code secret avec des indication "trops grand" ou "trops petit". Pour avoir un nombre au hasard tu utilise
nbrSecret = random.randint(100,500)
et apres tu compare le nombre donné par l'utilisateur et le secret
  • Partager sur Facebook
  • Partager sur Twitter
10 avril 2008 à 14:26:50

  1. nbr = input("Devinez le nombre:")
  2. nbrsecret = random.randint(100,500)
  3. cpt=1
  4. while nbr<nbrsecret or nbr>nbrsecret:
  5.     if nbr<nbrsecret:
  6.         print "Plus grand!"
  7.     elif nbr>nbrsecret:
  8.         print "Plus petit!"
  9.     nbrsecret = input("Essayez encore!:")
  10.     cpt=cpt+1
  11. print "Gagné en %d coup(s)" %(cpt)


Je n'y arrive toujours pas mais est ce que je semble approcher de la solution?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
10 avril 2008 à 15:00:51

Je vais pas te donner le reponse mais il ne manque pas grand choses :
1) Il manque l'importation du module random
2) N'utilise pas le symbole "é" sans l'instruction d'encodage correspondante
3) nbr<nbrsecret or nbr>nbrsecret : pour dire différent fait nbr!=nbrsecret
4) il y a un problème dans ton algo, quand tu redemande dans ta boucle un autre proposition, tu doit assigner le nombre rentré dans nbr et non dans nbrsecret.
Dans tous les cas, ce n'est pas un code super propre mais avec ces quelques corrections cela devrait marcher
  • Partager sur Facebook
  • Partager sur Twitter
10 avril 2008 à 15:28:22

Excellent! J'ai trouvé!! Merci beaucoup pour votre aide!!
  • Partager sur Facebook
  • Partager sur Twitter
21 février 2014 à 18:03:18

bonjour,

Je souhaite que l'utilisateur choisisse un nombre dans l'intervalle [1,10] mais je ne vois pas comment faire. Quelqu'un pourrait me débloquer s-il vous plait ? :) 

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
24 février 2014 à 11:15:50

Salut, ben il faut lui gueuler dessus. L'utilisateur est par défaut idiot, donc il faut tester son entrée et lui crier dessus si ce n'est pas correct.

while True:
    nb=int(input('Entrez un nombre entre 1 et 10 : '))
    if 1<=nb<=10:
        break
    print('Retourne en CP !')

Par contre, créer un nouveau sujet aurait été préférable.

Par ailleurs, il faudrait tester également si l'utilisateur entre bien un nombre. Ici, si il rentre des lettres, il y a une erreur lors de la conversion. Je te laisse chercher comment gérer les exceptions.

-
Edité par Anonyme 24 février 2014 à 11:18:40

  • Partager sur Facebook
  • Partager sur Twitter
5 août 2016 à 8:03:51

salut à tous, je suis un nouveau membre et un nouvel

apprentissage en programmation.

s'il vous plait dites moi si l'on peut importer deux modules à la fois dans un programme et comment le fait-on?

-
Edité par AnonymeAnonyme24 5 août 2016 à 8:11:43

  • Partager sur Facebook
  • Partager sur Twitter
10 septembre 2017 à 19:31:47

tu peux le faire comme ça :

import module1, module2, module3, ...

  • Partager sur Facebook
  • Partager sur Twitter
12 septembre 2017 à 15:31:32

Hello,

En fier défenseur du PEP8, faut éviter les imports one-line.

Par convention et souci de lisibilité, on importe plutôt les modules séparément:

import module1
import module2
from module3 import fonction1


Mais je suis pas sûr que c'était utile de déterrer le topic pour ça

  • Partager sur Facebook
  • Partager sur Twitter
2 mai 2018 à 9:32:13

ça l'était ^^ merci de l'info
  • Partager sur Facebook
  • Partager sur Twitter
13 mars 2021 à 22:21:14 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


13 mars 2021 à 22:26:14

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter