Problème de input

Fermé
Utilisateur anonyme - 1 janv. 2021 à 13:08
yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 1 janv. 2021 à 18:55
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

yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024 1 474
1 janv. 2021 à 13:12
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
0
Utilisateur anonyme
1 janv. 2021 à 13:19
#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)
0
yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024 1 474
1 janv. 2021 à 13:18
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.
0
Utilisateur anonyme
Modifié le 1 janv. 2021 à 13:23
Merci, j'ai compris ma faute mais je ne sais pas comment la corrriger ?
0
yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024 1 474 > Utilisateur anonyme
1 janv. 2021 à 13:25
réfléchi encore quelques minutes, fais des essais, cela t'aidera à progresser.
0
yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024 1 474
1 janv. 2021 à 13:23
pour pi, tu peux faire ainsi:
import math
π=math.pi
0
Utilisateur anonyme
1 janv. 2021 à 13:26
Merci et pour ça ?

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

0
Utilisateur anonyme
1 janv. 2021 à 13:39
'jai réfléchi depuis hier, je n' arrive pas à retrouver la solution
0
yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024 1 474 > Utilisateur anonyme
1 janv. 2021 à 13:45
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.
0
Utilisateur anonyme > yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024
Modifié le 1 janv. 2021 à 13:51
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 ?
0
yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024 1 474 > Utilisateur anonyme
1 janv. 2021 à 14:21
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.
0
Utilisateur anonyme > yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024
1 janv. 2021 à 18:14
Merci
0