Python

Fermé
python - 2 nov. 2020 à 20:42
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 4 nov. 2020 à 16:46
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 !")

3 réponses

Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
Modifié le 2 nov. 2020 à 20:47
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

0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
2 nov. 2020 à 20:47
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
0
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 :
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
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
4 nov. 2020 à 16:46
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
  • 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
0