有人可以解释为什么这段代码只打印6? :)
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
答案 0 :(得分:0)
首先,由于你的代码没有在问题中格式化,而且由于待处理的编辑(我打赌将其修改)我无法编辑它,我将假设你的代码应该是这样的:
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
让我们一步一步地分解它。您的打印件将调用func
,将其编号为4,然后打印出来的任何数字。因此控制跳转到func
并开始处理,x
的数字为4。将结果初始化为0,然后进入循环。 for i in range(x)
会为您提供一个数字列表[0, 1, 2, 3]
(实际上不是一个列表,但我们可以通过这种方式对其进行简化解释)。对于该列表中的每个数字i
,您要将其添加到当前值result
。因此,result
会执行以下步骤:
result = 0 + 0
result = 0 + 1
result = 1 + 2
result = 3 + 3
result
的最终值为6,返回并打印。这就是你的6来自哪里。如果你打电话给func(5)
,你会得到10,因为它经历了相同的步骤,但是在同一计算中增加了4。此函数的作用是将0
的数字添加到x - 1
(至少对于正整数输入)。