Boucle de saisie d'une liste

passereve Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   -
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)
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
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