3 回答
TA贡献1796条经验 获得超4个赞
答案是0
因为这while False
意味着循环体甚至不会被执行一次,并且由于total3
仅在体循环中递增,因此其值将保持与循环前相同,即是0
因为total3=0
它上面的线。
为了让循环体执行之后的表达式的值while
应该是真的。最常见的真值是True
。
TA贡献1813条经验 获得超2个赞
True 和 False 是布尔文字值。也就是说,它们的值是由语言已知和设置的。想象一下,如果你有这样的事情:
while 1 < 2:
“1”和“2”是整数文字值。表达永远不会改变,结果永远是一样的。在这种情况下,结果是一个等于 的布尔值True
。
因此,具有“True”或任何不变的真表达式(例如1 < 2
,作为条件)的 while 循环将希望“永远”运行,因为它永远不会失败该测试。停止这种循环的唯一方法是生成一个键盘异常(通常通过按“Ctrl-C”),或者在代码中的某处发生一个未捕获的异常,或者让一些代码执行一个break
语句。
在您的示例中,您将 中的数字相加并在遇到负数时given_list2
停止(通过执行 a break
)。所以正数相加,即 17。
类似地,while
具有“False”或任何不变的假表达式作为条件的循环永远不会运行,因为第一个测试while 1 > 2
将失败并且循环将中止。这导致没有执行任何内部代码。
在您的示例中,您total3 = 0
从不运行任何代码,因此它保持为 0。
TA贡献1847条经验 获得超7个赞
while 循环评估条件并在条件评估为 时执行其块中的代码True,否则退出循环。条件True导致循环无限继续,因为它只能评估为 True,而False导致循环立即退出而不运行其块中的代码。
我知道这只是如何使用 while 循环的一个示例,但是,如果这是一个实际用例,您会想要使用 for 循环来代替。
given_list2 = [5, 4, 4, 3, 1, -2, -3, -5]
total3 = 0
for n in given_list2:
if n > 0:
total3 += n
else:
break
print(total3)
甚至
total3 = sum(n for n in given_list2 if n > 0)
添加回答
举报