考虑以下函数:
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
我知道这些都是超级简单的问题,但我刚刚开始,我不知道如何阅读函数和东西。
我希望能得到一些解释,解释为什么答案是这样的。
好吧,我正在尝试尽可能简单地向您解释这个程序。
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。
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。
希望这有帮助。
1a。 如果您向 range() 提供单个值。它被视为止损值。 因此 range(3) 将迭代至 <3 i.e 0 1 2.
1b。因为 z = z + y 因此首先 z = 0 + 4 , z = 4 + 4 最后将是 z = 8 + 4 。
以下代码片段第三次迭代后,“i”中将存储什么值: 利率 = [.05, .04, .03, .02]
for i in range(len(rates)):
variable = rates[i] + 1
print(“”)