1

我无法理解 Python for 循环。例如,这是我在学习时编写的一些代码:

board = []
for i in range (0,5):
    board.append(["O"] * 5)

不要担心代码做了什么,我只是不明白“i”变量是什么意思。

4

6 回答 6

4

它是一个迭代器,你可以把它看成一个存储每次迭代结果的桶;增加混乱的事情是它在您的脚本中根本没有使用,这是另一个“更多地”使用迭代器的脚本。

fruits = ['banana', 'apple', 'strawberry', 'coconut', 'cherry']
for yup in fruits:
  print(yup)

如您所见,您可以根据需要命名它,这是使该单词成为迭代器的语法。

于 2013-04-02T12:29:09.883 回答
4

把它想象成替代品。

range(0,5)[0,1,2,3,4]。for 循环遍历列表中的每个元素,命名元素i

for i in range(0,5):
    # Starts with 0
    print i # prints 0
    # now goes back, goes through next element in list: 1.

打印 0,1,2,3,4。

在您的示例中, i 是占位符。它仅用于循环某事物 x 次(在这种情况下,五次,因为 range(0,5) 的长度为 5)

另外,在 Codecademy 学习 python 玩得开心(我认识这个任务:p)

于 2013-04-02T12:27:17.210 回答
3

这是一个未使用的变量。Python 语法需要在那个位置有一个变量,但你不需要对它做任何事情,因为你只是想重复一个动作 5 次。

有些人更喜欢这样命名未使用变量的约定_

for _ in range(5)

但是这个名字可以干扰gettext

于 2013-04-02T12:27:02.693 回答
1

for 循环遍历从每次迭代中[0, 1, 2, 3, 4]获得的给定对象列表,您需要一个变量来获取迭代值。range(0,5)这就是这里的用途i。您可以将其替换为任何变量以获取值。

for n in range(0, 5):
    print n    #prints 0, then 1,  then 2, then 3,then 4 in each iteration

另一个例子:

for n in ('a', 'b', 'c'):
    print n    #prints a, then b,  then c in each iteration

i但是在您给出的代码中,未使用该变量。它正在被使用。只是为了遍历对象列表。

于 2013-04-02T12:35:47.387 回答
1

在 c/java 中,for 循环将是:

for(int i=0;i<=10;i++)
{ 
  //for-loop-body
}

在这里,对于每次迭代,我都会增加 +1 值,直到我达到 10,之后它就会退出循环。同样,在 python 中,for 循环看起来像:

for i in range(0,10):
  //for-loop-body

这里 i 执行相同的操作, i 只是增加值的变量。

于 2013-04-02T13:27:34.013 回答
1

简而言之,i指的是列表中的当前元素。

您的列表定义为:0、1、2、3、4 和 5。因此i将迭代此列表并将自己分配给下一项,i为 0,下一次迭代i将为 1,下一次迭代i将为 2 ,依此类推。

直接来自 python.org:

Python 中的 for 语句与您在 C 或 Pascal 中可能使用的语句有些不同。Python 的 for 语句迭代任何序列的项目(列表或一个字符串),按照它们在序列中出现的顺序。例如(没有双关语)

words = ['cat', 'window', 'defenestrate']
for w in words:
 print w, len(w)

结果是:

  • 猫 3
  • 窗口 6
  • 开窗 12

http://docs.python.org/2/tutorial/controlflow.html

于 2013-04-02T12:26:41.830 回答