有人可以解释为什么这个代码只打印6? :)返回语句与打印语句?
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
有人可以解释为什么这个代码只打印6? :)返回语句与打印语句?
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
首先,因为在这个问题你的代码没有被格式化正确的,我不能编辑它由于挂起的编辑(我敢打赌,修复它),我要去承担你的代码应该看起来像这样:
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
让我们一步一步分解它。您的打印将打电话func
,给它4号,然后打印任何数字出来。所以控制跳转到func
并开始在那里处理,编号为4的x
。您将结果初始化为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
(至少对于正整数输入)。
哦,我明白了。我只是假定它会返回所有结果,而不仅仅是最后一个。所以,我期望看到: 0 1 3 6。 – Prince
因为这就是它应该做的。它打印函数的返回值。范围是唯一的,所以1 + 2 + 3 = 6 – Li357
试试'print(func(1))'。 – Zety