Problème de input

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

  1. Contributeur
    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
    1. #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)
  2. Contributeur
    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.
    1. Merci, j'ai compris ma faute mais je ne sais pas comment la corrriger ?
    2. Contributeur
      pour pi, tu peux faire ainsi:
      import math
      π=math.pi
    3. Contributeur
      @Utilisateur anonymeréfléchi encore quelques minutes, fais des essais, cela t'aidera à progresser.
  3. Merci et pour ça ?

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

    1. 'jai réfléchi depuis hier, je n' arrive pas à retrouver la solution
    2. Contributeur
      @Utilisateur anonymeprend 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.
    3. @yg_beOk, 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 ?
    4. Contributeur
      @Utilisateur anonymeune 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.