-2
votes

Python - tandis que la boucle imbriquée pour boucle

J'essayais d'atteindre cette sortie:

iter = 0
count = 0
letter = 0
for iter in range(5):
    while letter < len("hello, world"):
        letter+=1
        count+=1
    print("Iteration " + str(iter) + "; count is: " + str(count))


5 commentaires

Quelles sont les règles pour la construction des chiffres après ; ? C'est toujours i + = 12 ?


Après le premier tandis que est terminé, la lettre est égale à la longueur de Hello World, donc Nombre n'est jamais incrémenté dans la seconde et les interventions suivantes. Ainsi (où) devriez-vous (re) initialiser lettre ?


On dirait que votre code et la sortie attendue ne correspond pas


Initialisation iTER est inutile. For-Lops fait la variable de choses pour vous.


@mrblewog Vous avez raison, je devrais initialiser (réinitialiser) lettre après toutes les personnes terminées pendant l'itération. Entre pour et pendant déclaration lettre = 0


3 Réponses :


0
votes

lettre code> est toujours 13 car il n'est pas réinitialisé. Donc, tandis que la boucle ne sera exécutée qu'une seule fois. Pour résoudre ce problème,

count = 0
for iter in range(5):
    letter = 0
    while letter < len("hello, world"):
        letter+=1
        count+=1
    print("Iteration " + str(iter) + "; count is: " + str(count))


1 commentaires

iter = 0 est également inutile.



0
votes

Qu'est-ce qui se passe ici est que vous ne définissez jamais lettre à 0 après une intervention. Donc lettre reste toujours à 12.

lettre d'impression comme ceci: xxx

sorties: xxx

après le premier tandis que l'itération lettre reste à 12 et donc tandis que la lettre <12: n'est jamais exécutée, le nombre ne peut jamais augmenter. < / p>

Assurez-vous de définir lettre à 0 après chaque pendant boucle: xxx


0 commentaires

0
votes

là! Cela peut être corrigé en réinitialisant la lettre à 0 après chaque boucle. La boucle tandis que la boucle ne fonctionnera que la première fois parce que, pendant la deuxième fois, la valeur de la lettre augmente à 13 et n'est plus XXX


0 commentaires