为什么此python代码的结果正确?

时间:2018-11-15 05:28:55

标签: python

我对于为什么以下提到的python代码中的合计结果为20感到非常困惑?我知道这是正确的,因为我自己在python上进行了测试。请记住,我是python的新手,并且仍然在学习,所以不要对我太刻薄。

您能否以外行的方式向我解释为什么结果为20? 我最近才知道total + = num表示total = total + num。

尽管这似乎是一个很愚蠢的问题,但我还是觉得有必要问一下,因为我不理解。

num = 0

total = 0

while num < 10:

    total +=num

    num+=2

print(total)

3 个答案:

答案 0 :(得分:4)

在while循环的每次迭代中,total都会增加num的值,并且num会增加2。然后,对num的值进行10测试,然后循环继续直到测试失败。 > 因此,您有:

  

初始状态-> num = 0,总计= 0
  第一次迭代-> num = 2,total = 0
  第二次迭代-> num = 4,total = 2
  第3次迭代-> num = 6,total = 6
  第4次迭代-> num = 8,total = 12
  第5次迭代-> num = 10,总计= 20

此时,num失败了while条件,因此该进程退出循环,其总值为20。

答案 1 :(得分:1)

num = 0

total = 0

while num < 10:

    total +=num

    num+=2
    print("total =%s , num = %s" %(total,num))

输出为:

total =0 , num = 2
total =2 , num = 4
total =6 , num = 6
total =12 , num = 8
total =20 , num = 10

答案 2 :(得分:1)

好问题!检查任何编程语言中的whilefor循环功能的一种非常不错的方法是在while / for循环内打印每个步骤的输出。在这种情况下,我们可以使用以下代码(您代码的修改版本),在每个步骤中,我们将打印存储在totalnum中的值。

num = 0

total = 0

while num < 10:
    total +=num
    print 'num = ', num, " total = ", total
    num+=2

print "After final step, total = ", total

这是上面代码的输出:

num =  0  total =  0
num =  2  total =  2
num =  4  total =  6
num =  6  total =  12
num =  8  total =  20
After final step, total =  20

从以上输出中,您可以看到在for循环的每一步,num的值一直增加了2total的值不断增加num的值(即total_new = total_old + num)。 num的值等于或大于10时,我们退出while循环,并且没有输出。