循环迭代后i的值

问题描述 投票:0回答:4

考虑以下函数:

def xyz(x,y):
    z = 0

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

    return z

a.如果 x 为 3,y 为 4,每次循环迭代的 i 值是多少?

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

我已经有了答案:

a. 0,1,2

b. 4,8,12

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

我希望能得到一些解释,解释为什么答案是这样的。

python function loops iteration
4个回答
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]
。因此 i 值从 0 变化到 2。 (第一次迭代为 0,最后一次迭代为 2)。

z
值将是增量的,因为您正在对
i
z
本身进行加法。 所以,事情就是这样的,

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

函数返回 3。


0
投票

a。如果 x 为 3,y 为 4,每次循环迭代的 i 值是多少? 通过在循环内添加打印语句来测试这一点很容易:

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 中已排除了 3。 (在Python 3.x中,range被xrange取代,并且包含最后一个值,然后值为0,1,2,3。)

b。每次循环迭代结束时 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。 第三次迭代:8 + 4 = 12。

希望这有帮助。


0
投票

1a。 如果您向 range() 提供单个值。它被视为止损值。 因此 range(3) 将迭代至 <3 i.e 0 1 2.

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


0
投票

以下代码片段第三次迭代后,“i”中将存储什么值: 利率 = [.05, .04, .03, .02]

for i in range(len(rates)):
    variable = rates[i] + 1
print(“”)
© www.soinside.com 2019 - 2024. All rights reserved.