Python的最后一行for循环执行了两次

时间:2016-07-01 02:18:11

标签: python for-loop

为什么“不”打印额外的时间?如果不在单独的函数中编写循环,如何解决问题?

for i  in range(2):
    if i == 1:
        print("yes")
    print("no")

结果:

no
yes
no

3 个答案:

答案 0 :(得分:3)

让我们看看发生了什么:

i=0时,它会打印noi=之后,首先打印yes,然后打印no

编辑:修复它,你可以

for i  in range(2):
    if i == 1:
       print("yes")
    else:
       print("no")

或者,

for i  in range(2):
    if i == 1:
        print("yes")
        continue
    print("no")

答案 1 :(得分:1)

另一个print语句无条件地发生 ;也就是说,没有else来阻止它再次发射。

您可以使用else

来阻止它
for i  in range(2):
    if i == 1:
        print("yes")
    else:
        print("no")

答案 2 :(得分:1)

你也可以使用关键字break来修复它,如下所示:

for i in range(2):
    if i==1:
        print('yes')
        break
    print('no')

当i == 1突破for func时,也许这是更好的理解