无法理解为什么返回此值

时间:2017-10-05 14:25:43

标签: python algorithm

我有这个代码,我很难理解为什么返回这个值,并希望有人可以向我解释。我是循环和索引的新手,所以请耐心等待。

total = 0
while total < 10:
    for i in range(3):
        total += 1
    total *= 2
    print(total)

我无法理解这只会返回618的值。

2 个答案:

答案 0 :(得分:2)

看看发生了什么:

total = 0
while total < 10:
    for i in range(3):
        total += 1

total现在等于3。

total *= 2

total现在等于6。

print(total)

它打印&#34; 6&#34;。 total仍在&lt; 10,所以它再次循环:

while total < 10:
    for i in range(3):
        total += 1

total现在等于6 + 3 = 9。

total *= 2

total现在等于18。

print(total)

它打印&#34; 18&#34;。现在total大于10,因此您的while循环停止。

答案 1 :(得分:0)

total = 0
while total < 10:
    for i in range(3):
        total += 1
    total *= 2
    print(total)

总= 0

最终总值小于10,所以循环工作 在此之后for循环总计是

总=总+ 0

然后总计=总计+ 1

然后总计=总计+ 2

所以for循环后的总数是

总= 3

然后下一个完整的声明 总值= 3 * 2 = 6

首次循环后的总数= 6

再次进入while循环并且值小于10而while 循环工作正常

之后for循环总计是

总=总+ 0

然后总计=总计+ 1

然后总计=总计+ 2

所以for循环后的总数是 总= 9

然后下一个完整的声明 总值= 3 * 2 = 18

首次循环后的总数= 18

再次进入while循环,值大于10 而while循环不起作用并且中断。