Désolé d'avance de la faible pertinence du titre, je n'avais pas vraiment d'idée de la façon dont je devais décrire ma question, je vous laisse déjà jeter un coup d’œil au code, il demande simplement une valeur à l'utilisateur et va créer un triangle (je vous laisse tester si ça vous tente, mais le triangle reste très basique, on doit pouvoir faire 10 fois mieux, c'est le mieux que je pouvais au vu de mes connaissance).
Bref ma question concerne la fin, je voudrais demander à l'utilisateur soit d'écrire "fermez" et alors le programme se ferme (ça sa marche correctement) mais que si l'utilisateur veut refaire un triangle il puisse directement donner une nouvelle valeur (en gros sois il ferme le programme avec "fermez" soit il donne une nouvelle valeur). Le problème est que la valeur donnée n'est pas prise en compte et n'est pas modifier, le programme fait un autre triangle mais au même dimension qu'avant
Désolé de vous déranger pour si peu, l'utilité est moindre mais ça m'amuser de faire ce programme et de le rendre le plus complet possible.
Merci d'avance pour votre aide !
Code:
hauteur = 0
fin = "non"
while fin != "fermez":
while hauteur <2 or hauteur >118:
print("Quel hauteur devra faire votre triangle?:", end = " ")
hauteur = int(input())
if hauteur <2 or hauteur >118:
print("la hauteur minimum est 2 et la hauteur maximale est 118")
def triangle(hauteur):
espace = 0
for x in range(hauteur-1):
for loop in range(hauteur-x-1):
print(" ", end = "")
print("/", end = "")
for loop in range(espace):
print(" ",end = "")
espace += 2
print(chr(92))
print("/", end = "")
for loop in range(hauteur+(hauteur-2)):
print("_", end = "")
print(chr(92))
triangle(hauteur)
print("Pour arréter le programe écrivez 'fermez', sinon entrez une nouvelle valeur")
fin = input()
test = type(fin)
if test == int:
hauteur = fin
Désolé de vous déranger pour si peu, l'utilité est moindre mais ça m'amuser de faire ce programme et de le rendre le plus complet possible.
Non mais c'est bon, c'est un exercice, c'est bien pour apprendre, et c'est moins fatiguant de s'occuper de problèmes simples
Pour ton code, déjà le premier truc, c'est qu'il faut sauter des lignes. Presque 30 lignes de code et pas un seul saut de ligne, c'est dur à lire.
Ensuite, la fonction en plein milieu de la boucle, c'est vraiment pas possible, les fonctions il faut les définir au début du fichier, avant de commencer le code principal, sinon ça n'a aucun intérêt. Et l'indentation, c'est 4 espaces, 8 c'est beaucoup trop.
Exemple :
def triangle(hauteur):
espace = 0
for x in range(hauteur-1):
for loop in range(hauteur-x-1):
print(" ", end = "")
print("/", end = "")
for loop in range(espace):
print(" ", end = "")
espace += 2
print(chr(92))
print("/", end = "")
for loop in range(hauteur+(hauteur-2)):
print("_", end = "")
print(chr(92))
hauteur = 0
fin = "non"
while fin != "fermez":
while hauteur < 2 or hauteur > 118:
print("Quel hauteur devra faire votre triangle?:", end = " ")
hauteur = int(input())
if hauteur < 2 or hauteur > 118:
print("la hauteur minimum est 2 et la hauteur maximale est 118")
triangle(hauteur)
print("Pour arréter le programe écrivez 'fermez', sinon entrez une nouvelle valeur")
fin = input()
test = type(fin)
if test == int:
hauteur = fin
Pour ton bug, c'est juste le if à la toute fin, ta condition n'est jamais vraie.
- Edité par LoupSolitaire 23 novembre 2019 à 2:30:48
Merci beaucoup, je ne connaissais pas ce test ça a bien résolu mon problème. Merci beaucoup!
Pouvoir retourner une valeur directement
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...