2016-12-14 3 views
-1

Betrieb habe ich mich gefragt mich, ob jemand mir mit Aussortieren, warum dieser Code helfen könnte:For-Schleife nicht richtig

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

nur druckt:

apple 
pear 
pear 
pear 

eher in der Liste als jede der Früchte .

+7

'counter = + 1 'sollte sei 'counter + = 1'. Andernfalls setzen Sie den Zähler so, dass er bei jeder Iteration positiv ist. Und Index 1 von 'fruits' ist' 'pear'' – Jakub

+6

Auch brauchen Sie es nicht,' i' ist bereits 'fruits [counter]'. – Maroun

Antwort

2

Sie haben einen Tippfehler in Ihrem Code.

counter += 1 sollte es beheben.

3

Wenn Sie a=+1 schreiben, setzen Sie eine gleich positive 1. Sie wollen a+=1.

Oder Sie könnten einfach i anstelle eines Zählers drucken, da i bereits durch die Elemente in der Liste iteriert.

Beispiel unter Verwendung eines Zählers:

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

Reiniger Beispiel ohne einen Zähler:

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

Es gibt keine Notwendigkeit, in dieser Situation mit Python zu indizieren. Sie können wie folgt geändert werden:

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

for fruit in fruits: 
    print(fruit) 

Wie bereits erwähnt, werden Sie die counter bis +1 (=+1) statt Erhöhen sie die Zuweisung (+=1). Dadurch wird das zweite Element (der Index 1) nach dem ersten Mal für die Dauer der Schleife gedruckt.

2

Sie brauchen nicht die counter Variable zu verwenden, wenn es eine Anforderung dann counter += 1 ist anstelle von counter = +1

Die Lösung für das, was Sie wollen, ist:

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