Python
python
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, saviez vous quel est le probleme dans ce code.
depense = float(input("Entres vos dépenses : "))
total = 0.0
compteur = 0
depense = 0.1
while depense > 0.0 :
print("Entrez une dépense ou -1 pour terminer : ")
if depense > 0.0 :
total = total + depense
compteur = compteur + 1
if compteur > 0 or depense >= 0 :
depense = total / depense
moyenne = total / compteur
print("La moyenne des dépenses est : ", round(moyenne,2))
else:
print("Vous n'avez entré aucune dépense !")
depense = float(input("Entres vos dépenses : "))
total = 0.0
compteur = 0
depense = 0.1
while depense > 0.0 :
print("Entrez une dépense ou -1 pour terminer : ")
if depense > 0.0 :
total = total + depense
compteur = compteur + 1
if compteur > 0 or depense >= 0 :
depense = total / depense
moyenne = total / compteur
print("La moyenne des dépenses est : ", round(moyenne,2))
else:
print("Vous n'avez entré aucune dépense !")
3 réponses
Bonsoir
il y a un truc primordial en Python => l'indentation.
Poster un code, sans utiliser l'outil dont dispose tous les forums de code qui se respectent => https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
supprime l'indentation.
Corrige la présentation de ton code, et après seulement, on pourra commencer à t'aider
Parce qu'en l'état, le problème c'est qu'il n'y a pas d'indentation
il y a un truc primordial en Python => l'indentation.
Poster un code, sans utiliser l'outil dont dispose tous les forums de code qui se respectent => https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
supprime l'indentation.
Corrige la présentation de ton code, et après seulement, on pourra commencer à t'aider
Parce qu'en l'état, le problème c'est qu'il n'y a pas d'indentation
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
à toi de nous dire: il ne se comporte pas comme tu le souhaites?
la seule chose que je remarque, c'est que tu n'utilises pas les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
à toi de nous dire: il ne se comporte pas comme tu le souhaites?
la seule chose que je remarque, c'est que tu n'utilises pas les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Votre code est effectivement très difficile à lire car vous n’indiquez pas les indentations.
Ceci dit, je me demande si vous ne créez pas une boucle infinie. Effectivement, vous donnez une valeur de départ ‘depense’ de 0,1 ; puis vous lancez une boucle qui tournera tant que ‘depense’ est positif. Comment pourrait-elle alors s’arrêter ? Et si vous indiquez une valeur ‘depense’ de zéro, vous sortirez une belle erreur, car vous faites une division ‘total / depense’ donc une division par zéro. Avec en plus le fait qu’on se demande à quoi vous sert de calculer ce ratio.
Pour lancer votre boucle, vous pouvez créer une variable ‘programme’ que vous fixez à True. Tant que vous souhaitez que la boucle continue, vous la laissez à True. Sinon, vous lui donnez la valeur False pour interrompre la boucle.
Je ne sais pas si vous êtes un lycéen en difficulté face à un devoir, auquel cas la bonne pratique de ce site, si j’ai bien compris, est de ne pas vous donner la solution toute faite. Si, par contre, vous êtes comme moi un programmeur plus ou moins amateur, je peux vous proposer une solution qui marche.
Quoi qu’il en soit, essayez un code du style :
Ceci dit, je me demande si vous ne créez pas une boucle infinie. Effectivement, vous donnez une valeur de départ ‘depense’ de 0,1 ; puis vous lancez une boucle qui tournera tant que ‘depense’ est positif. Comment pourrait-elle alors s’arrêter ? Et si vous indiquez une valeur ‘depense’ de zéro, vous sortirez une belle erreur, car vous faites une division ‘total / depense’ donc une division par zéro. Avec en plus le fait qu’on se demande à quoi vous sert de calculer ce ratio.
Pour lancer votre boucle, vous pouvez créer une variable ‘programme’ que vous fixez à True. Tant que vous souhaitez que la boucle continue, vous la laissez à True. Sinon, vous lui donnez la valeur False pour interrompre la boucle.
Je ne sais pas si vous êtes un lycéen en difficulté face à un devoir, auquel cas la bonne pratique de ce site, si j’ai bien compris, est de ne pas vous donner la solution toute faite. Si, par contre, vous êtes comme moi un programmeur plus ou moins amateur, je peux vous proposer une solution qui marche.
Quoi qu’il en soit, essayez un code du style :
programme = True
compteur = 0
total = 0
while programme:
depense = float(input('Entrez une dépense ou -1 pour terminer : '))
#condition1...
programme = False
#print quelque chose du style merci et au revoir
#condition2...
#si la valeur entrée est nulle
#condition3...
#ici vous mettez vos calculs pour le total et la moyenne
Bonjour McBeth, en 2 jours, il n’a pas daigné revenir poster son code correctement ou même dire qu’il n’a pas compris ce qu’on lui a demandé.
C’est pas la peine de relancer
Bref s’il avait encore besoin d’aide il serait revenu
C’est pas la peine de relancer
- il peut avoir trouvé seul la solution
- il peut l’avoir eue sur un autre forum
- la date peut-être dépassée
Bref s’il avait encore besoin d’aide il serait revenu