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
- Application se ferme toute seule android - Guide
- Mettre une seule page en paysage word - Guide
- Site paiement plusieur fois carte nickel forum - Forum Consommation & Internet