while循环中的初始化

我是 python 新手,无法理解下面的代码片段。我不明白为什么 sum 被初始化为 0,而不是 1。任何人都可以解释这个初始化吗?


n = 4

sum = 0  # initialize sum

i = 1  # initialize counter

while i <= n:

    sum = sum + i

    i = i+1  # update counter

print("The sum is", sum)


慕标琳琳
浏览 101回答 2
2回答

倚天杖

这实际上更像是计算机编程的基础知识而不是 Python 问题。我将尝试在这里简要解释一下。看起来您的目标是找到整数 1 到 n 的总和。如果用 1 初始化sum,那么得到的结果将始终比整数 1 到 n 的实际和多 1。您可以通过使用小值(例如n最多 5)进行运行并将获得的输出与实际总和进行比较来验证这一点。为了方便起见,我在这里放一张桌子:n | sum(1, n)-------------1 |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;12 |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;33 |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;64 |&nbsp; &nbsp; &nbsp; &nbsp; 105 |&nbsp; &nbsp; &nbsp; &nbsp; 15现在将其与使用 1 初始化时的输出进行比较。sum出于好奇,您也可以尝试使用其他值进行初始化。

侃侃尔雅

Sum 初始化为零,但由于 n 和 i 小于或等于,因此您总是运行至少一个循环,取 i = 1,则总和仍为 1,因为循环检查 1 是否小于或等于 1 (i <= n)。因为它是然后它将 i 添加到总和(即 1)中,使总和为 1。然后它将 i 更新为 2 并转到 while 循环的顶部。由于 2 <= 1 或 i <= n 在这里为 false,因此它会中断并打印 1 作为总和
打开App,查看更多内容
随时随地看视频慕课网APP