Maison  >  Questions et réponses  >  le corps du texte

Questions de base pour les débutants en Python sur l'imbrication des boucles while

Le code source est le suivant :

# -*- coding:gb2312 -*-
#站起来,坐下,站起来,转5个圈,坐下。整个流程执行10次
Process1 = 1
Process2 = 1
while Process1 < 10: # 这个Process1 代表外面大的while循环
    print("="*5)
    print("第%d次执行"%Process1)
    print("站起来")
    print("坐下")
    print("站起来")
    while Process2 <= 5: # 这个Process2 代表嵌套在里面的while小循环
        print("转%d个圈"%Process2)
        Process2 = Process2 + 1
    print("坐下")
    Process1 = Process1 + 1

Résultat d'exécution :

Ma question est :
Pourquoi la partie marquée en rouge sur l'image, c'est-à-dire la boucle interne de Process2, n'est-elle exécutée qu'une seule fois dans tout le processus, au lieu d'être exécutée 10 fois avec toute la grande boucle à l'extérieur ? Comment puis-je l'améliorer pour qu'il puisse continuer à être imbriqué dans l'ensemble du programme ?

PHP中文网PHP中文网2705 Il y a quelques jours697

répondre à tous(2)je répondrai

  • 怪我咯

    怪我咯2017-05-24 11:37:20

    Après avoir exécuté la première boucle externe, l'initialisation de Process2 的值变成了 6, 在执行第二次外循环及以后时,它的值一直是 6, 所以内循环不执行.
    如果你想让它执行, Process2 doit être placée à l'intérieur de la boucle externe.

    Process1 = 1
    while Process1 < 10: # 这个Process1 代表外面大的while循环
        print("="*5)
        print("第%d次执行"%Process1)
        print("站起来")
        print("坐下")
        print("站起来")
        Process2 = 1
        while Process2 <= 5: # 这个Process2 代表嵌套在里面的while小循环
            print("转%d个圈"%Process2)
            Process2 = Process2 + 1
        print("坐下")
        Process1 = Process1 + 1

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-24 11:37:20

    Vous devez placer l'affectation de variable de la boucle interne à l'intérieur de la boucle externe. Il est garanti que les variables de la boucle interne démarrent à 1 à chaque fois que la boucle externe est exécutée. Sinon, la variable de la boucle interne devient 6 après la première exécution et reste 6 par la suite, ce qui n'entraîne aucune autre exécution.

    # -*- coding:gb2312 -*-
    #站起来,坐下,站起来,转5个圈,坐下。整个流程执行10次
    Process1 = 1
    while Process1 < 10: # 这个Process1 代表外面大的while循环
        print("="*5)
        print("第%d次执行"%Process1)
        print("站起来")
        print("坐下")
        print("站起来")
        Process2 = 1
        while Process2 <= 5: # 这个Process2 代表嵌套在里面的while小循环
            print("转%d个圈"%Process2)
            Process2 = Process2 + 1
        print("坐下")
        Process1 = Process1 + 1

    répondre
    0
  • Annulerrépondre