Boucle de saisie d'une liste

Fermé
passereve Messages postés 3 Date d'inscription dimanche 6 février 2011 Statut Membre Dernière intervention 1 novembre 2021 - Modifié le 1 nov. 2021 à 12:35
choubaka Messages postés 39404 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 21 novembre 2024 - 1 nov. 2021 à 12:57
Bonjour,
je réitère ma question en tenant compte de la mise en forme.
J'ai écrit le code suivant :

def maliste():
 chaine = input("montant\t")
 montant = float(chaine)
 return montant

depenses = [maliste()]

for i in range(4):
 depenses = depenses + [maliste()]


Mais je voudrais écrire une boucle qui s'arrêterait lorsque le montant saisi est vide ou égal à 0.

Avant la boucle for j'ai essayé une boucle while :

while montant > 0:
 depenses = depenses + [maliste()]

mais j'obtiens un message d'erreur : NameError: name 'montant' is not defined
et je ne sais pas comment m'en sortir...

Merci de m'aider (je suis débutant)

2 réponses

yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 Ambassadeur 1 556
1 nov. 2021 à 12:53
bonjour,
tu peux insérer ton code mis en forme dans une réponse à la discussion précédente.
peux-tu marquer celle-ci comme résolue, et continuer dans la première discussion?
0
choubaka Messages postés 39404 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 21 novembre 2024 2 102
1 nov. 2021 à 12:57
Le "return" termine ta fonction .. donc la portée de ta variable montant...

En fait, un premier test à la saisie (une condition if / Else) afin de vérifier si la saisie est nulle ou égale à zéro.
Ensuite ta boucle et le return à la fin de ta fonction.
0