kam*_*id2 2 python loops for-loop
我用来学习python的资源让你在自己的网站上执行模块.我认为它最初是为这所特定大学的学生设计的,所以这就是为什么我用家庭作业标记了这一点,尽管它不是.
无论如何:
他们让我执行这项任务:
定义一个函数prod(L),它返回列表L中元素的乘积.
我使用此代码使此功能正常工作:
def prod(L):
i = 0
answer = 1
x = len(L)
while i < x:
answer = answer * L[i]
i = i + 1
if i == x:
return answer
Run Code Online (Sandbox Code Playgroud)
下一个模块简要介绍了For-In循环.他们提出了一个问题:
像以前一样定义函数prod(L),但这次使用新类型的循环.
我试过通过其他资源来了解如何使用这个,但我没有遵循任何事情.任何人都可以解释,最好用简单的英语解释for-in循环如何工作?
供参考:这里是他们谈到的关于for-in循环的一切
循环遍历列表循环遍历列表中的每个值是非常常见的(如上一个练习中所示).Python允许快捷方式执行此类操作,通常称为"for all"循环或"for each"循环.具体来说,当L是一个列表时,这个代码
for x in L: «loop body block»执行以下操作:首先将x设置为L中的第一个值并执行正文; 然后将x设置为L中的第二个值并执行主体; L中的所有项目都是如此.
我只是无法完全包围这个.我不是在寻找答案,因为我这样做是为了知识增长 - 但我觉得我落后于此):
希望这个简单的例子有助于澄清,以下两段代码做同样的事情:
使用while循环:
L = ['a', 'b', 'c']
i = 0
while i < len(L):
print L[i]
i += 1
Run Code Online (Sandbox Code Playgroud)
使用for循环:
L = ['a', 'b', 'c']
for c in L:
print c
Run Code Online (Sandbox Code Playgroud)
如果你想要索引和像你一样的元素有一个while循环,pythonic方法是使用枚举:
L = ['a', 'b', 'c']
for index, element in enumerate(L): # returns (0,'a'),(1,'b'),(2,'c')
print index
print element
Run Code Online (Sandbox Code Playgroud)
正如您在上面所看到的,for循环允许您直接迭代迭代的内容,而不是while循环方法,您可以跟踪索引并使用索引访问项目.