Exercice en python
Bonjour,
J'ai une série d'exercices en python et je n'arrive pas à faire les exercices.
Dans cet exercice, nous revenons sur le petit jeu de devinette.
Écrire un programme qui génère de manière (pseudo) aléatoire un entier (nombre secret) compris entre 0 et 100. Ensuite, le joueur doit deviner ce nombre en utilisant le moins d’essais possible.
À chaque tour, le joueur est invité à proposer un nombre et le programme doit donner une réponse parmi les suivantes :
« Trop grand » : si le nombre secret est plus petit que la proposition et qu’on n’est pas au maximum d’essais
« Trop petit » : si le nombre secret est plus grand que la proposition et qu’on n’est pas au maximum d’essais
« Gagné en n essai(s) ! » : si le nombre secret est trouvé
« Perdu ! Le secret était nombre » : si le joueur a utilisé six essais sans trouver le nombre secret.
Exemple 1 Une partie gagnée (après la génération du nombre à deviner) :
NB : Les nombres sont les valeurs saisies par l’utilisateur, et les textes sont imprimés par le programme.
Exemple 2 Une partie perdue (après la génération du nombre à deviner) :
Voici le code que j'ai écrit, mais ça ne marche pas :
Et voici le résultat ça donne :
J'ai une série d'exercices en python et je n'arrive pas à faire les exercices.
Dans cet exercice, nous revenons sur le petit jeu de devinette.
Écrire un programme qui génère de manière (pseudo) aléatoire un entier (nombre secret) compris entre 0 et 100. Ensuite, le joueur doit deviner ce nombre en utilisant le moins d’essais possible.
À chaque tour, le joueur est invité à proposer un nombre et le programme doit donner une réponse parmi les suivantes :
« Trop grand » : si le nombre secret est plus petit que la proposition et qu’on n’est pas au maximum d’essais
« Trop petit » : si le nombre secret est plus grand que la proposition et qu’on n’est pas au maximum d’essais
« Gagné en n essai(s) ! » : si le nombre secret est trouvé
« Perdu ! Le secret était nombre » : si le joueur a utilisé six essais sans trouver le nombre secret.
Exemple 1 Une partie gagnée (après la génération du nombre à deviner) :
NB : Les nombres sont les valeurs saisies par l’utilisateur, et les textes sont imprimés par le programme.
50
Trop grand
8
Trop petit
20
Trop petit
27
Gagné en 4 essai(s) !
Exemple 2 Une partie perdue (après la génération du nombre à deviner) :
50
Trop grand
24
Trop petit
37
Trop petit
43
Trop grand
40
Trop petit
41
Perdu ! Le secret était 42
Voici le code que j'ai écrit, mais ça ne marche pas :
import random secret = random.randint(0, 100) NB_ESSAIS_MAX = 6 while NB_ESSAIS_MAX > 0: NB_ESSAIS_MAX -= 1 var = int(input()) if var > secret: print("Trop grand") elif var < secret: print("Trop petit") else: break if NB_ESSAIS_MAX != 0: print("Gagné en ", NB_ESSAIS_MAX, " essai(s) !") else: print("Perdu ! Le secret était", secret)
Et voici le résultat ça donne :
L'appel à votre programme sur l'input "50↵24↵" avec les arguments "97" a renvoyé:
Trop grand
Gagné en 4 essai(s) !
Le résultat attendu était :
Trop grand
Gagné en 2 essai(s) !
fail L'appel à votre programme sur l'input "50↵24↵11↵17↵" avec les arguments "54" a renvoyé:
Trop grand
Trop grand
Trop petit
Gagné en 2 essai(s) !
Le résultat attendu était :
Trop grand
Trop grand
Trop petit
Gagné en 4 essai(s) !
fail L'appel à votre programme sur l'input "50↵75↵62↵68↵71↵" avec les arguments "56" a renvoyé:
Trop petit
Trop grand
Trop petit
Trop petit
Gagné en 1 essai(s) !
Le résultat attendu était :
Trop petit
Trop grand
Trop petit
Trop petit
Gagné en 5 essai(s) !
fail L'appel à votre programme sur l'input "50↵24↵11↵17↵" avec les arguments "1" a renvoyé:
Trop grand
Trop grand
Trop petit
Gagné en 2 essai(s) !
Le résultat attendu était :
Trop grand
Trop grand
Trop petit
Gagné en 4 essai(s) !
fail L'appel à votre programme sur l'input "50↵24↵11↵5↵8↵9↵" avec les arguments "72" a renvoyé:
Trop grand
Trop grand
Trop grand
Trop petit
Trop petit
Perdu ! Le secret était 9
Le résultat attendu était :
Trop grand
Trop grand
Trop grand
Trop petit
Trop petit
Gagné en 6 essai(s) !
A voir également:
- Exercice en python
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- \R python ✓ - Forum Python
- Afficher un message sur python "" ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
2 réponses
Bonjour,
L'indentation est importante en Python, merci te réafficher ton code avec les balises:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
L'indentation est importante en Python, merci te réafficher ton code avec les balises:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Bonjour,
Je pense que ton erreur, c'est que tu as écris ton code pour compter le nombre d'essais restants alors qu'il fallait compter le nombre d'essais faits.
Mis à part ça, utiliser une boucle
Une fois corrigé ton programme pourrait ressembler à ceci :
Bonne chance
Je pense que ton erreur, c'est que tu as écris ton code pour compter le nombre d'essais restants alors qu'il fallait compter le nombre d'essais faits.
Mis à part ça, utiliser une boucle
forme paraît plus simple (et plus naturel) qu'une boucle
while, mais tu peux parfaitement utiliser une boucle
whilesi tu préfères...
Une fois corrigé ton programme pourrait ressembler à ceci :
import random secret = random.randint(0, 100) NB_ESSAIS_MAX = 6 for essai in range(1, NB_ESSAIS_MAX + 1): var = int(input()) if var > secret: print("Trop grand") elif var < secret: print("Trop petit") else: break if essai == NB_ESSAIS_MAX: print(f"Perdu ! Le secret était {secret}") else: print(f"Gagné en {essai} essai(s) !")
Bonne chance