return语句与print语句?

时间:2016-08-22 22:50:30

标签: python printing return

有人可以解释为什么这段代码只打印6? :)

def func(x):
    result = 0
    for i in range(x):
        result = result + i
    return result

print(func(4))

1 个答案:

答案 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(至少对于正整数输入)。