首页  >  问答  >  正文

python小白的基础问题 关于while循环的嵌套

源代码如下:

# -*- 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

执行结果:

我的问题是:
为什么如图红色标记的这一部分,也就是Process2这一部分的内循环,在整个过程只执行了一次,而不是随着外面的整个大循环执行10次? 我如何改进才可以让他随着整个程序一直嵌套在里面循环下去?

PHP中文网PHP中文网2705 天前695

全部回复(2)我来回复

  • 怪我咯

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

    执行第一次外循环之后, Process2 的值变成了 6, 在执行第二次外循环及以后时,它的值一直是 6, 所以内循环不执行.
    如果你想让它执行, Process2的初始化应该放到外循环里面.

    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

    回复
    0
  • 给我你的怀抱

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

    要把内层循环的变量赋值放在外层循环里面才行。保证在每次外层循环时,内层循环变量都从1开始。不然,内层循环变量第一次运行后变成6,之后一直是6,导致后面不再执行。

    # -*- 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

    回复
    0
  • 取消回复