循环迭代后i的值

时间:2016-12-12 05:09:34

标签: python function loops iteration

考虑以下功能:

def xyz(x,y):
    z = 0

    for i in range(x):
        z = z + y

    return z

一个。如果x是3且y是4,那么每次循环迭代的i值是多少?

湾每次循环迭代结束时z的值是多少? (第一次迭代后z是多少?第二次迭代后z是什么?)

我有答案:

一个。 0,1,2

湾4,8,12

我知道这些都是超级简单的问题,但我刚刚开始这个,我不知道如何阅读函数和内容。

我很想解释为什么答案就是它们的原因。

3 个答案:

答案 0 :(得分:0)

好的,我试图尽可能简单地向您解释这个程序。

def xyz(x,y): #This is a program declaration
    z = 0

    for i in range(x):
        z = z + y

    return z

您需要通过xyz(3,4)在Python的某处调用此程序。你可以使用任何int而不是3和4。

在函数调用之后,python中x和y的值将是3和4.因此,range(x)将是range(3),即[0,1,2]。因此我的值从0-2变化。 (第一次迭代为0,最后一次为2次)。

z值将是增量值,因为您在iz本身进行了添加。 所以,就像这样,

  

1次迭代。 z = 0 + 0   2次迭代。 z = 0 + 1   3次迭代。 z = 1 + 2

,函数返回3.

答案 1 :(得分:0)

<强>一个。如果x是3且y是4,那么每次循环迭代的i值是多少?   通过在循环中添加print语句来测试它很容易:

def xyz(x,y):
z = 0
for i in range(x):
    print i
    z = z + y
return z

Range是一个带有两个参数的函数,beginnig(包含)和end(不包括)。如果只有一个值,那么它是结束,默认情况下,开始设置为0。因此,如果x为3,则循环中的值将为0,1,2但不是3,因为这在Python 2.x中被排除。 (在Python 3.x中,范围由xrange替换,并且包含最后一个值,然后值为0,1,2,3。)

<强>湾在每次循环迭代结束时z的值是多少?(第一次迭代后的z是什么?第二次迭代后的z是多少?)   再次,使用print语句:

def xyz(x,y):
z = 0
for i in range(x):
    z = z + y
    print z
return z

每个循环中z的值分别为4,8,12。答案按以下方式计算: 第一次迭代:z为0,并且为其添加了4。 z的值现在为4,因为它被覆盖。 第二次迭代:将4添加到4,因此最终结果为8。 第3次迭代:8 + 4 = 12。

希望这有帮助。

答案 2 :(得分:0)

1a上。 如果为range()提供单个值。它被视为止损值。 因此范围(3)将迭代到<3,即0 1 2。

1b中。因为z = z + y因此首先z = 0 + 4,z = 4 + 4,最后它将是z = 8 + 4.