Looping over Lists
Avem o listă de nume. Vrem să salutăm fiecare personaj. Am putea face
nume = ["Tommy", "Lance", "Cortez"]
print(f"Salut, {nume[0]}!")
print(f"Salut, {nume[1]}!")
print(f"Salut, {nume[2]}!")
Încă o dată, repetăm cod. Dacă lista are 100 de nume? Nu vom scrie 100 de print-uri. Folosim o buclă for. Tehnic vorbind se poate folosi și o buclă while, dar un for este mai potrivit aici
nume = ["Tommy", "Lance", "Cortez"]
for i in nume:
print(f"Salut, {i}!")
Ieșire
Salut, Tommy!
Salut, Lance!
Salut, Cortez!
Ce înseamnă asta? Îi spunem lui Python așa: folosim i pentru a parcurge lista nume. Prima dată, i va fi Tommy, apoi i va fi Lance și tot așa. Comportamentul e similar cu cel din for i in range(), doar că de data asta parcurgem o listă
Putem folosi și range() cu len() dacă vrem indexul pe lângă valoare
nume = ["Tommy", "Lance", "Cortez"]
for i in range(0, len(nume)):
print(f"Erou numarul {i + 1}: {nume[i]}")
Ieșire
Erou numarul 1: Tommy
Erou numarul 2: Lance
Erou numarul 3: Cortez
De ce i + 1? Pentru că în cod numărăm de la 0, dar oamenii încep de obicei de la 1 când spun „primul, al doilea, al treilea". Așa că adăugăm 1 doar pentru afișare
Ambele stiluri sunt utile. for n in nume este mai curat când vrem doar valoarea. for i in range(...) este necesar când avem nevoie și de poziție
Un caz de folosire clasic: adunarea numerelor dintr-o listă
preturi = [10, 20, 30, 40]
total = 0
for i in preturi:
total = total + i
print(total)
Rezultat 100. Am început cu total = 0, apoi pentru fiecare preț i l-am adăugat la total. Acesta este unul dintre cele mai des întâlnite tipare din programare și îl vei scrie de multe, multe ori. Citește codul linie cu linie și asigură-te că înțelegi de ce funcționează
Misiune: Echipajul navei
Ai în dreapta lista cu cei 20 de membri ai echipajului, numită echipaj. Controlul de la sol a selectat trei oameni pentru o ieșire în spațiu (EVA): cei aflați la indexurile 5, 10 și 12 din listă
Parcurge lista cu o buclă for și afișează fiecare membru numerotat (1. Maria, 2. Andrei și tot așa; folosește indexul cu i + 1). Pentru membrii de la indexurile 5, 10 și 12 adaugă la final -> selectat pentru EVA
Ai grijă: numărăm de la 0, deci indexul 5 este al 6-lea membru afișat
Ieșire
1. Maria
2. Andrei
3. Elena
4. Mihai
5. Ana
6. Vlad -> selectat pentru EVA
7. Ioana
8. George
9. Diana
10. Radu
11. Cristina -> selectat pentru EVA
12. Alex
13. Gabriela -> selectat pentru EVA
14. Stefan
15. Laura
16. Bogdan
17. Andreea
18. Paul
19. Roxana
20. Dan
Schimbă indexurile selectate sau adaugă un membru nou și rulează din nou, vezi cum se mută eticheta de EVA