考虑以下功能:
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
我知道这些都是超级简单的问题,但我刚刚开始这个,我不知道如何阅读函数和内容。
我很想解释为什么答案就是它们的原因。
答案 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
值将是增量值,因为您在i
和z
本身进行了添加。
所以,就像这样,
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.