对不起,那里有一个措辞严厉的问题,但我基本上都在问我是否有:
for i in range(0,10):
我是否需要在之前的位置设置i = 0
,或者for循环设置为i = 0
?
我是主要使用C来自python的新手,在C中总是有一部分for
循环设置i = 0
(或其他)。
答案 0 :(得分:8)
python中的for
循环与其他语言中的foreach
类似。 range (0, 10)
定义了从0到10的数字列表,不包括10. for循环然后将i
连续设置为列表中的每个值。因此,您无需事先定义或初始化i
。
答案 1 :(得分:4)
不,您不需要事先将i
设置为任何内容。
在python中,您不需要预先声明变量。 for
循环只是在循环的每次迭代中将range()
中的下一个值分配给i
。
在C中你需要一个for
循环来生成一个数组的索引,在python中你通常只是直接遍历序列 :
for element in somelist:
# do something with element
而不是
for i in range(len(somelist)):
element = somelist[i]
答案 2 :(得分:2)
您可以使用enumerate()
简单地计算循环次数。
>>> for i,c in enumerate('abcde') :
... print i,c
...
0 a
1 b
2 c
3 d
4 e
答案 3 :(得分:1)
for是一个与你期望的有点不同的工作:它直接在所谓的“迭代器”上“迭代”,而不是在变量上。如果您有一个支持迭代或生成的对象或函数,则可以使用for-statement。
Range()实际上返回一个数字序列,for-statement采用。它为每个数字执行它的主体。