python-3.x - 不知道为什么输出是 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)
解决方案
不,命令是按顺序解释的。当if
条件为真时,在可以执行之前break
退出for
循环。print
前两个循环break
被跳过,因为1 % 2 == 0
它是假的,但2 % 2 == 0
在到达之前退出循环3
是真的,如果循环还没有退出,那么它也将是真的并打印......
推荐阅读
- c# - 生产托管上的“无法在此范围内声明名为‘模型’的局部变量”错误。代码有什么问题?
- powershell - 从 .csv 标记 Azure 资源
- c++ - 为什么这段代码会导致访问不正确?
- python - 使用列表推导过滤包含两个元素的子列表
- php - 使用php和mysql的预订系统
- python - “list”对象没有“lower”属性
- android - Android将我自制的CA证书识别为用户证书,并没有正确安装
- javascript - 将乘法结果格式化为小数点后 2 位
- excel - 使用“cell.value < Date(now())”填充列表框
- javascript - 在 JavaScript 上访问 DOM