Structurile de control sunt instructiuni utilizate pentru a ajusta modul in care un program se desfasoara.
La nivelul limbajelor de programare sunt prezente trei astfel de structuri:
• structuri conditionale (decizionale): permit executia conditionata a unei instructiuni sau a unui bloc de instructiuni;
• structuri iterative (repetitive): au rolul de a executa repetitiv o instructiune sau un set de instructiuni, pana la indeplinirea unei conditii de iesire;
• structuri de salt: utilizate pentru a transfera controlul executiei unei alte zone a programului.
Instructiunea if
Structurile conditionale ofera posibilitatea executarii conditionate a uneia sau mai multor instructiuni. In limbajul Python, din aceasta categorie face parte o singura instructiune, if.
Instructiunea if permite executia unei instructiuni sau a unui bloc de instructiuni in functie de valoarea de adevar a unei conditii. La nivelul limbajului Python, sintaxa acestei instructiuni este urmatoarea:
if conditie1: instructiune1 else: instructiune2
In acest caz instructiune poate reprezenta o singura instructiune sau un bloc de instructiuni. Daca conditia este adevarata (se evalueaza la True), atunci se executa instructiune1; in caz contrar, se executa instructiune2. Ramura else nu este obligatorie intr-o astfel de instructiune conditionala.
Instructiunea if poate fi intalnita si in constructii imbricate de genul if … elif.
if conditie1: instructiune1 elif conditie2: instructiune2 else: instructiune3
>>> num = 3.14 >>> if num > 0: ... print('numar pozitiv') ... elif num == 0: ... print('zero') ... else: ... print('numar negativ') ... numar pozitiv
>>> a, b = 15, 3 >>> if a < b: ... m = a ... else: ... m = b ... >>> print("minimul este ", m) minimul este 3
In limbajul Python, conditiile pot fi definite si prin intermediul unei astfel de linii:
>>> a, b = 15, 3 >>> m = a if a < b else b
Instructiunea while
Instructiunile iterative au rolul de a executa repetitiv o instructiune sau un set de instructiuni, pana la indeplinirea unei conditii de iesire. La nivelul limbajului Python sunt disponibile doua intructiuni iterative while si for.
Instructiunea iterativa while se utilizeaza pentru a repeta o instructiune sau un bloc de instructiuni atata timp cat conditia este adevarata. Forma generala a instructiunii while este următoarea:
while conditie: instructiune1 else: instructiune2
In momentul in care conditia devine falsa, controlul executiei este acordat blocului corespunzator ramurii else, daca aceasta este prezenta.
>>> i = 0 >>> while i < 10: ... print(i, end = " ") ... i = i + 1 ... 0 1 2 3 4 5 6 7 8 9
O instructiune break rulata la nivelul blocului while acorda controlul executiei urmatoarei linii de program de dupa bucla while (fara executia instructiunilor de la nivelul ramurii else).
>>> i = 0 >>> while i < 3: ... print("loop") ... i += 1 ... else: ... print("else") ... loop loop loop else
Instructiunea for
Instructiunea iterativa for se utilizeaza pentru a parcurge elementele unei secvente (sir, lista sau tuplu). Forma generala a instructiunii for este următoarea:
for valoare in secventa: instructiune1 else: instructiune2
Si instructiunile de tip for pot detine o ramura else, optionala, ramura ce este executata in cazul in care toate elementele de la nivelul secventei au fost parcurse.
>>> orase = ['Timisoara', 'Londra', 'Roma'] >>> for oras in orase: ... print(oras) ... Timisoara Londra Roma
>>> nums = [34, 23, 11, 6, 31] >>> sum = 0 >>> for val in nums: ... sum += val ... >>> print('suma valorilor din este ', sum) suma valorilor din num este 105
Generarea unei secvente numerice se poate realiza prin intermediul functiei range(). Aceasta poate fi utilizata cu un argument (valoarea finala de la nivelul secventei), doua argumente (valorile de inceput si de final de la nivelul secventei) sau chiar cu trei argumnete (cel de-al treilea argument are semnificatia de pas).
range(start, stop, pas)
>>> list(range(5)) [0, 1, 2, 3, 4] >>> list(range(5, 10)) [5, 6, 7, 8, 9] >>> list(range(5, 10, 2)) [5, 7, 9]
Valoarea de final (stop) nu este prezenta la nivelul secventei generate.
>>> for i in range(0, 9): ... print(i, end = " ") ... 0 1 2 3 4 5 6 7 8
Pe langa instructiunile conditionale si iterative, limbajul Python mai ofera trei instructiuni de salt: break, continue si return. Instructiunile de salt sunt utilizate pentru a transfera controlul executiei unei alte zone a programului.
Instructiunea break poate fi utilizata pentru parasirea unei bucle.
Instructiunea continue poate aparea numai in interiorul unui bloc de instructiuni subordonat unei instructiuni iterative. Continue opreste executia restului de instructiuni din bloc si face un salt la urmatoarea iteratie.
Instructiunea return ofera controlul executiei apelantului metodei care o contine. De asemenea, instructiunea return va determina finalizarea functiei in care este executata.