Home » Articole » Articole » Calculatoare » Programare » Python » Limbajul de programare Python: Bucla for

Limbajul de programare Python: Bucla for

postat în: Python 0

Cu for loop (buclă for), putem repeta o bucată de cod. Să ne uităm la un exemplu:

one_to_ten = range(1, 11)
for count in one_to_ten:
    print(count)

Ieșirea acestui cod arată după cum urmează:

1
2
3
4
5
6
7
8
9
10

Ieșirea pare foarte familiară, dar codul programului arată diferit. Prima linie folosește funcția range. Funcția range folosește două argumente astfel range(start, finish). start este primul număr care este produs. finish este cu unul mai mare decât ultimul număr. Rețineți că acest program ar fi putut fi realizat într-un mod mai scurt:

for count in range(1, 11):
    print(count)

Funcția rangereturnează un iterabil. Aceasta poate fi convertită într-o listă cu funcția list care va fi atunci numărul dominant. Iată câteva exemple pentru a arăta ce se întâmplă cu comanda range:

>>> range(1, 10)
range(1, 10)
>>> list(range(1, 10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(-32, -20))
[-32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21]
>>> list(range(5,21))
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(21, 5))
[]

Următoarea linie for count in one_to_ten: folosește structura de control for. O structură de control for arată ca
for variable in list:
. list este parcursă începând cu primul element al listei și mergând până la ultimul. Pe măsură ce for trece prin fiecare element dintr-o listă, pune pe fiecare în variable. Acest lucru permite ca variable să fie utilizat în fiecare timp succesiv prin care trece bucla for. Iată un alt exemplu (nu trebuie să tastați acest lucru) pentru a demonstra:

demolist = ['life', 42, 'the universe', 6, 'and', 7, 'everything']
for item in demolist:
    print("The current item is:",item)

Ieșirea este:

The current item is: life
The current item is: 42
The current item is: the universe
The current item is: 6
The current item is: and
The current item is: 7
The current item is: everything

Observați cum bucla for trece și setează itemul la fiecare element din listă. Deci, pentru ce este bun for? Prima utilizare este să parcurgeți toate elementele unei liste și să faceți ceva cu fiecare dintre ele. Iată o modalitate rapidă de a adăuga toate elementele:

list = [2, 4, 6, 8]
sum = 0
for num in list:
    sum = sum + num

print("The sum is:", sum)

cu ieșirea fiind pur și simplu:

The sum is: 20

Sau puteți scrie un program pentru a afla dacă există duplicate într-o listă, așa cum face acest program:

list = [4, 5, 7, 8, 9, 1, 0, 7, 10]
list.sort()
prev = None
for item in list:
    if prev == item:
        print("Duplicate of", prev, "found")
    prev = item

și la o bună verificare:

Duplicate of 7 found

Bine, deci cum funcționează? Iată o versiune specială de depanare pentru a vă ajuta să înțelegeți (nu trebuie să introduceți aceasta):

l = [4, 5, 7, 8, 9, 1, 0, 7, 10]
print("l = [4, 5, 7, 8, 9, 1, 0, 7, 10]", "\t\tl:", l)
l.sort()
print("l.sort()", "\t\tl:", l)
prev = l[0]
print("prev = l[0]", "\t\tprev:", prev)
del l[0]
print("del l[0]", "\t\tl:", l)
for item in l:
    if prev == item:
        print("Duplicate of", prev, "found")
    print("if prev == item:", "\t\tprev:", prev, "\titem:", item)
    prev = item
    print("prev = item", "\t\tprev:", prev, "\titem:", item)

cu ieșirea fiind:

l = [4, 5, 7, 8, 9, 1, 0, 7, 10]        l: [4, 5, 7, 8, 9, 1, 0, 7, 10]
l.sort()                l: [0, 1, 4, 5, 7, 7, 8, 9, 10]
prev = l[0]             prev: 0
del l[0]                l: [1, 4, 5, 7, 7, 8, 9, 10]
if prev == item:        prev: 0         item: 1
prev = item             prev: 1         item: 1
if prev == item:        prev: 1         item: 4
prev = item             prev: 4         item: 4
if prev == item:        prev: 4         item: 5
prev = item             prev: 5         item: 5
if prev == item:        prev: 5         item: 7
prev = item             prev: 7         item: 7
Duplicate of 7 found
if prev == item:        prev: 7         item: 7
prev = item             prev: 7         item: 7
if prev == item:        prev: 7         item: 8
prev = item             prev: 8         item: 8
if prev == item:        prev: 8         item: 9
prev = item             prev: 9         item: 9
if prev == item:        prev: 9         item: 10
prev = item             prev: 10        item: 10

Motivul pentru care am pus atât de multe declarații print  în cod a fost ca să puteți vedea ce se întâmplă în fiecare linie. (Apropo, dacă nu vă puteți da seama de ce nu funcționează un program, încercați să introduceți o mulțime de declarații print în locuri unde doriți să știți ce se întâmplă.) În primul rând, programul începe cu o listă veche plictisitoare. Apoi programul sortează lista. Acest lucru este astfel încât orice duplicat să fie pus unul lângă celălalt. Programul inițializează apoi o variabilă a prev
anterioară. În continuare, primul element al listei este șters, astfel încât primul element să nu fie considerat greșit un duplicat. Urmează o buclă for. Fiecare item din listă este verificat pentru a vedea dacă este același cu cel precedent. Dacă este un duplicat, a fost găsit. Valoarea lui prev  este apoi modificată, astfel încât data viitoare când bucla for trece prin prev să fie elementul anterior celui curent. Destul de sigur, s-a găsit că 7 este un duplicat. (Observați cum se folosește \t pentru a tipări o filă.)

Cealaltă modalitate de a utiliza buclele for este să faceți ceva de un anumit număr de ori. Iată un cod pentru a tipări primele 9 numere din seria Fibonacci:

a = 1
b = 1
for c in range(1, 10):
    print(a, end=" ")
    n = a + b
    a = b
    b = n

cu ieșirea surprinzătoare:

1 1 2 3 5 8 13 21 34

Tot ceea ce se poate face cu buclele for (for loop) se poate face și cu buclele while , dar buclele for oferă o modalitate ușoară de a parcurge toate elementele dintr-o listă sau de a face ceva de un anumit număr de ori.

(Include texte din Wikibooks traduse și adaptate de Nicolae Sfetcu)

Ghid WordPress pentru începători
Ghid WordPress pentru începători

Descoperă arta gestionării site-urilor web cu WordPress!

Nu a fost votat 14.32 lei26.24 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Adobe Photoshop pentru începători
Adobe Photoshop pentru începători

Descoperă-ți potențialul creativ și învață să creezi imagini care vor captiva.

Nu a fost votat 9.53 lei20.64 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Big Data: Modele de afaceri - Securitatea megadatelor
Big Data: Modele de afaceri – Securitatea megadatelor

Nu rata oportunitatea de a rămâne competitiv într-o lume bazată pe date!

Nu a fost votat 19.11 lei28.68 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *