我在理解此python代码时遇到问题

时间:2019-05-09 12:31:20

标签: python

我想学习Python并参加了测试。在测试中,我遇到了这段代码,我需要获取它的输出。

我输入正确的答案是6,但我不理解代码,只是将其放在在线python编译器中!

为什么此代码会输出$project

db.EMP.aggregate([
  {
    $group: {
      _id: "$ENAME",
      SAL: {
        $sum: "$SAL"
      },
      COMM: {
        $sum: "$COMM"
      }
    }
  },
  {
    $project: {
      total: {
        $sum: [
          "$SAL",
          "$COMM"
        ]
      }
    }
  }
])

3 个答案:

答案 0 :(得分:2)

我想这将解决您的问题伙伴

def func(x):
    res = 0

    for i in range(x):
        print "x",i
        print "res",res
        res += i
        print "res out", res
    return res
print(func(4))

结果:

x 0
res 0
res out 0
x 1
res 0
res out 1
x 2
res 1
res out 3
x 3
res 3
res out 6
6

答案 1 :(得分:0)

您要将数字4作为变量x传递到函数中,并在最后打印结果。

在for循环中,i是一个临时变量,表示范围04的每个数字。

所以代码中的步骤如下所示

for 0 in range 0 to 4

0添加到variable res = 0 + 0 = 0

现在res = 0

1在范围0 to 4中的下一个步骤/循环

1添加到variable res = 0 + 1 = 1

现在res = 1

2在范围0 to 4中的下一个步骤/循环

2添加到variable res = 1 + 2 = 3

现在res = 3

3在范围0 to 4中的下一个步骤/循环

3添加到variable res = 3 + 3 = 6

现在res = 6

循环完成,结果为6

答案 2 :(得分:0)

您将i的值分配给res,然后将res值添加到i的值,并且将输出分配给res的值,即x = 3,res变为3并加值3为等于6臂架

def用于定义函数和范围,即从起点到所需的终点,因此,在这种情况下,您将4作为变量x传递给函数,这意味着循环以0值开始,以4值结束。