首页 > 解决方案 > 不知道为什么输出是 1 1,而不是 1123?

问题描述

我参加了一个测验,以下代码的输出1 1不是1 1 2 3. 这个答案的解释是,当代码遇到break(当它到达2) 时,循环停止。

我知道循环在到达时停止2,但由于与语句print()具有相同的缩进if(),我认为它们是单独执行的,(但都仍在for循环中)。所以当number到达时2,即使循环停止,它仍然会执行print(),因为它还在for循环中。因此,结果是1 1 2 3. 而且不管是什么if()语句,结果都是一样的。

numbers = [1, 1, 2, 3]
for number in numbers:
  if number % 2 == 0:
    break
  print(number)

标签: python-3.x

解决方案


不,命令是按顺序解释的。当if条件为真时,在可以执行之前break退出for循环。print前两个循环break被跳过,因为1 % 2 == 0它是假的,但2 % 2 == 0在到达之前退出循环3是真的,如果循环还没有退出,那么它也将是真的并打印......


推荐阅读