我的代码如下:
smallest_so_far = -1
print("Before:", smallest_so_far)
for the_num in [9, 41, 12, 3, 74, 15, -3]:
if the_num < smallest_so_far:
print(the_num, "is smaller than", smallest_so_far)
smallest_so_far = the_num
print(the_num, "is not smaller than", smallest_so_far)
print("After:", smallest_so_far)
但是,如果它以前已经做过一行,为什么它最后还要用-3检查-3呢?我认为它应该在“in”中的每个值上滚动一次。
输出:
Before: -1
9 is not smaller than -1
41 is not smaller than -1
12 is not smaller than -1
3 is not smaller than -1
74 is not smaller than -1
15 is not smaller than -1
-3 is smaller than -1
-3 is not smaller than -3
After: -3
4条答案
按热度按时间lyfkaqu11#
我认为它应该在“in”中的每个值上滚动一次。
确实如此,但每个值都有一个
print
这是在任何情况下执行的,再加上另一种情况print
如果条件(the_num < smallest_so_far
)这是真的。因此,对于每个值,可以得到1行或2行输出。在您的例子中,只有一个值有两行输出,因此总共有8行7个值的输出。但如果输入值的顺序不同,可能会有更多的输出行(最多14行)。
如果你想要第二个
print
如果第一个已执行,则需要使用else
角色if
语句(以便if
部分else
部分已执行),或者您可以使用continue
语句,如果条件为true,则跳过循环迭代的其余部分。备选案文1,使用
else
:备选案文2,使用
continue
:tuwxkamq2#
你需要另一个。代码仍将运行
不管怎样。
所以您要将代码更改为
v09wglhw3#
在else子句中插入打印内容:
lf5gs5x24#
您在循环中使用了if语句,而没有使用else语句,因此它同时打印这两条语句。使用下列内容