python:对于In循环 - 我没有理解

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中的所有项目都是如此.

我只是无法完全包围这个.我不是在寻找答案,因为我这样做是为了知识增长 - 但我觉得我落后于此):

And*_*ark 6

希望这个简单的例子有助于澄清,以下两段代码做同样的事情:

使用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循环方法,您可以跟踪索引并使用索引访问项目.