2016-12-14 61 views
-1

我只是想知道,如果有人可以帮助我理清为什么这个代码:For循环运行不正常

counter=0 
fruits=['apple','pear','orange','grape'] 
for i in fruits: 
    print(fruits[counter]) 
    counter=+1 

只打印:

apple 
pear 
pear 
pear 

,而不是列表中的每个果实。

+7

'计数器= + 1'应是'counter + = 1'。否则,在每次迭代中,您将“计数器”设置为正值1。 '水果'的索引1是'pear'' – Jakub

+6

你也不需要它,'我'已经'水果[counter]'。 – Maroun

回答

2

您的代码中存在拼写错误。

counter += 1应该修复它。

3

当您编写a=+1时,您将设置等于正值1.您想要a+=1

或者,您可以打印i而不是使用计数器,因为i已经遍历列表中的项目。

实施例使用计数器:

counter = 0 
fruits = ['apple','pear','orange','grape'] 
for i in fruits: 
    print(fruits[counter]) 
    counter += 1 

清洁例如未经计数器:

fruits = ['apple','pear','orange','grape'] 
for i in fruits: 
    print(i) 
2

没有必要索引在这种情况下与Python。你可以修改如下:

fruits=['apple','pear','orange','grape'] 

for fruit in fruits: 
    print(fruit) 

如前所述,你是分配counter到+1(=+1),而不是增加它(+=1)。因此它将在循环的持续时间内第一次后打印第二个元素(1索引)。

2

你并不需要使用counter变量,如果它是一个要求,然后使用counter += 1代替counter = +1

的解决方案,你想要的是:

fruits = ['apple', 'pear', 'orange', 'grape'] 
for f in fruits: 
    print(f)