Python不理解为什么输出如此

时间:2018-03-08 16:21:30

标签: python python-3.x loops iteration

我有这段代码:

num = 5  
if num > 2:
     print(num)
     num -= 1 
print(num)

输出结果为:

5
4 

在最后一次迭代中,条件是

  

3> 2

本应该打印但不是。

有人可以帮助我做到:

5
4
3

2 个答案:

答案 0 :(得分:4)

因为它不是循环,所以只是一系列陈述。

num = 5 # set num = 5
if num > 2: # since num > 2, this will hit
     print(num) # print "5"
     num -= 1 # set num = 4
print(num) # print "4"

您需要将语句括在循环中以获得所需的结果:

num = 5
while num > 2:
     print(num)
     num -= 1

答案 1 :(得分:1)

正如其他人在评论中指出的那样,在达到某个条件之前,没有任何东西可以让程序循环。您的代码完全按照预期执行。如果你希望它在条件为真时循环,那么这样做:

num = 5
while num > 2:
    print(num)
    num-= 1

if语句只评估一次,而while语句将在条件为真时运行,直到条件为假。