Problème de boucle while ne s'effectuant qu'une seule fois
Résolu
clems94
-
clems94 -
clems94 -
Bonjour,
Je cherche à déterminer la répartition de tailles de colis (1000 unités, 500 unités, 100 unités et 50 unités) en fonction de nombre d'unités dans chaque dotation à faire.
Pour cela, dans la fonction ci-dessous, j'appelle deux fonctions (testées et éprouvées) dans une première boucle while :
- "éclatement_unique", qui transforme un nombre d'unités en liste de nombres de boites par tailles de colis ( 17850 ==> 17 boîtes de 1000, etc.)
- "adaptation_colisage", qui adapte le résultat précédent en fonction des quantités de boites données dans "Colisage"
La seconde boucle while me sert à mettre à jour les quantités restantes dans le colisage en fonction du résultat de la première boucle while.
Mon problème (ci-dessous) est que la seconde boucle while ne semble s'activer qu'une seule fois, au lieu de s'activer à chaque boucle "while 1".
Quelqu'un pourrait m'indiquer pourquoi s'il vous plaît? Je deviens chèvre..
Je cherche à déterminer la répartition de tailles de colis (1000 unités, 500 unités, 100 unités et 50 unités) en fonction de nombre d'unités dans chaque dotation à faire.
Pour cela, dans la fonction ci-dessous, j'appelle deux fonctions (testées et éprouvées) dans une première boucle while :
- "éclatement_unique", qui transforme un nombre d'unités en liste de nombres de boites par tailles de colis ( 17850 ==> 17 boîtes de 1000, etc.)
- "adaptation_colisage", qui adapte le résultat précédent en fonction des quantités de boites données dans "Colisage"
La seconde boucle while me sert à mettre à jour les quantités restantes dans le colisage en fonction du résultat de la première boucle while.
Mon problème (ci-dessous) est que la seconde boucle while ne semble s'activer qu'une seule fois, au lieu de s'activer à chaque boucle "while 1".
Quelqu'un pourrait m'indiquer pourquoi s'il vous plaît? Je deviens chèvre..
***FONCTION ECLATEMENT GLOBAL*** def éclatement_global(dotations, grandeurs_colisage, repartitions, colisage) : i = 0 j = 0 while i < (len(dotations)) : repartitions[i] = éclatement_unique(dotations[i], grandeurs_colisage, repartitions[i]) print("Repartition après éclatement : {}".format(repartitions[i])) repartitions[i] = adaptation_colisage(repartitions[i], grandeurs_colisage, colisage) print("Repartition après adaptation : {}".format(repartitions[i])) while j < (len(repartitions[i])) : colisage[j] = colisage[j] - repartitions[i][j] print("Colisage : {}".format(colisage[j])) j += 1 i += 1 return repartitions
### REPONSE CONSOLE***
Repartition après éclatement : [17, 1, 3, 1]
Repartition après adaptation : [10, 15, 3, 1]
Colisage : 0
Colisage : 15
Colisage : 47
Colisage : 79
Repartition après éclatement : [6, 1, 1, 1]
Repartition après adaptation : [0, 13, 1, 1]
Repartition après éclatement : [10, 1, 0, 0]
Repartition après adaptation : [0, 15, 30, 0]
[[10, 15, 3, 1], [0, 13, 1, 1], [0, 15, 30, 0]]
Configuration: Windows / Chrome 80.0.3987.163
A voir également:
- Problème de boucle while ne s'effectuant qu'une seule fois
- Comment imprimer un tableau excel sur une seule page - Guide
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Mettre une seule page en paysage word - Guide
- Application se ferme toute seule android - Guide
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi