Problème de input

Signaler
Messages postés
7
Date d'inscription
vendredi 1 janvier 2021
Statut
Membre
Dernière intervention
1 janvier 2021
-
Messages postés
13905
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2021
-
En bref, je crée un petit programme python où on demande à l'utilisateur de choisir une forme géométrique et de calculer son volume et selon son choix, l'ordinateur lui fournit les données nécessaires (Largeur, hauteur...) ensuite on va vérifier sa réponse, le problème est :

voici mon code :


#import random
#import math
from random import randint
a = "Cube"
b = "Cylindre"
c = "Parallélépipède Rectangle"
arête = randint(1,50)
hauteur = randint(1,50)
largeur = randint(1,50)
longueur = randint(1,50)
rayon = randint(1,50)
π = 3.1415926535897
print("Révisons les volumes ensemble")
print("\n")
print("a.",a)
print('b.',b)
print('c.',c)
print("\n")
choix= input ('Veuillez choisir une forme géométrique: ')
if choix == 'a':
print('\n')
print("Sachant que l'arête est",arête,', calculez le volume de ce cube')
reponse_a = int(input('Le volume de ce cube est :'))
print(' ')
print('\n')
if choix =='b':
print('On donne :')
print('Hauteur =',hauteur)
print('Rayon = ', rayon)
print('π =', π)
reponse_b = float(input('Le volume de ce cylindre est :'))
print('\n')
if choix =='c':
print('On donne :')
print('Hauteur =',hauteur)
print('Longueur =',longueur)
print('Largeur =',largeur)
reponse_c = int(input('Le volume de ce parallélépipède rectangle :' ))
print(' ')
if reponse_a == arête**3 and choix =='a':
print('Bravo ! Vous avez bien répondu')
else:
print("C'est faux, tu dois réviser davantage, la réponse est", arête**3)
print('\n')
if reponse_b == hauteur*rayon**2*π and choix =='b':
print('Bravo ! Vous avez bien répondu')
else:
print("C'est faux, tu dois réviser davantage, la réponse est", arête**3)
print('\n')
if reponse_c == largeur*hauteur*longueur:
print('Bravo ! Vous avez bien répondu')
else :
print("C'est faux, vous devez réviser davantage, la réponse est", hauteur*longueur*largeur)

3 réponses

Messages postés
13905
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2021
782
bonjour, ton programme est, malheureusement, comme tu peux le voir, illisible.
peux-tu utiliser les explications ici?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
7
Date d'inscription
vendredi 1 janvier 2021
Statut
Membre
Dernière intervention
1 janvier 2021

#import random
#import math
from random import randint 
a = "Cube" 
b = "Cylindre"
c = "Parallélépipède Rectangle" 
arête = randint(1,50)
hauteur = randint(1,50)
largeur = randint(1,50)
longueur = randint(1,50)
rayon = randint(1,50)
π =  3.1415926535897
print("Révisons les volumes ensemble")
print("\n")
print("a.",a) 
print('b.',b)
print('c.',c)
print("\n") 
choix= input ('Veuillez choisir une forme géométrique: ') 
if choix == 'a':
   print('\n')
   print("Sachant que l'arête est",arête,', calculez le volume de ce cube')
   reponse_a = int(input('Le volume de ce cube est :')) 
print(' ')
print('\n')
if choix =='b':
	print('On donne :')
	print('Hauteur =',hauteur)
	print('Rayon = ', rayon)
	print('π =', π)
	reponse_b = float(input('Le volume de ce cylindre est :'))
print('\n')
if choix =='c':
	print('On donne :')
	print('Hauteur =',hauteur)
	print('Longueur =',longueur)
	print('Largeur =',largeur)
	reponse_c = int(input('Le volume de ce parallélépipède rectangle :' ))
print(' ')
if reponse_a == arête**3 and choix =='a':
	print('Bravo ! Vous avez bien répondu')
else:
	print("C'est faux, tu dois réviser davantage, la réponse est", arête**3)
print('\n')
if reponse_b == hauteur*rayon**2*π and choix =='b':
	print('Bravo ! Vous avez bien répondu')
else:
	print("C'est faux, tu dois réviser davantage, la réponse est", arête**3)
print('\n')
if reponse_c == largeur*hauteur*longueur:
	print('Bravo  ! Vous avez bien répondu')
else :
	print("C'est faux, vous devez réviser davantage, la réponse est", hauteur*longueur*largeur)
Messages postés
13905
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2021
782
si tu fais le choix "b", quand tu arrives ici:
if reponse_a == arête**3 and choix =='a':

la variable
reponse_a
n'est pas définie, puisque tu n'as exécuté aucun
reponse_a=...

c'est cela que t'indique le message d'erreur.
il y a plusieurs façons de remédier au problème, je te laisse choisir celle qui te convient.
Messages postés
7
Date d'inscription
vendredi 1 janvier 2021
Statut
Membre
Dernière intervention
1 janvier 2021

Merci, j'ai compris ma faute mais je ne sais pas comment la corrriger ?
Messages postés
13905
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2021
782 >
Messages postés
7
Date d'inscription
vendredi 1 janvier 2021
Statut
Membre
Dernière intervention
1 janvier 2021

réfléchi encore quelques minutes, fais des essais, cela t'aidera à progresser.
Messages postés
13905
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2021
782
pour pi, tu peux faire ainsi:
import math
π=math.pi
Messages postés
7
Date d'inscription
vendredi 1 janvier 2021
Statut
Membre
Dernière intervention
1 janvier 2021

Merci et pour ça ?

Comment je peux éviter les demandes de definir toutes les réponses ?

Messages postés
13905
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2021
782 >
Messages postés
7
Date d'inscription
vendredi 1 janvier 2021
Statut
Membre
Dernière intervention
1 janvier 2021

prend ton temps, écris un texte qui explique ce que tu crois être le problème.
imagine comment te programme pourrait être différent.
trouver des solutions, réfléchir à comment faire autrement, cela ne peut que t'aider à progresser.

ou bien arrête d'y réfléchir, fais d'autres exercices, cela t'aidera à découvrir d'autres méthodes.
Messages postés
7
Date d'inscription
vendredi 1 janvier 2021
Statut
Membre
Dernière intervention
1 janvier 2021
>
Messages postés
13905
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2021

Ok, je crois que le problème s'agit de if puisqu'il y a beaucoup de if est ce que je peux faire 3 grands if et d'autres if dans ces if ?
Messages postés
13905
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2021
782 >
Messages postés
7
Date d'inscription
vendredi 1 janvier 2021
Statut
Membre
Dernière intervention
1 janvier 2021

une des trois solutions que j'imaginais était, effectivement, de faire des if imbriqués.
heureusement, il est autorisé de mettre des if dans des if.
Messages postés
7
Date d'inscription
vendredi 1 janvier 2021
Statut
Membre
Dernière intervention
1 janvier 2021
>
Messages postés
13905
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2021

Merci
Messages postés
13905
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2021
782 >
Messages postés
7
Date d'inscription
vendredi 1 janvier 2021
Statut
Membre
Dernière intervention
1 janvier 2021

peux-tu alors marquer la discussion comme résolue?