Didaxis
lecție · Informatică

Structuri de control Python

if, for, while și domenii range.

Se face în:
Clasa a IX-a
Actualizat la: 30 octombrie 2026
1pe scurtstratul 1 din 2 · rezumatul lecției

Pe scurt

Python folosește if/elif/else pentru ramificare și for sau while pentru repetare. După o condiție ori un antet de buclă se scriu două puncte, iar corpul se indentează. range(4) produce 0, 1, 2, 3; valoarea 4 este exclusă.

Desen la lecția „Structuri de control Python”
2în detaliustratul 2 din 2 · pentru clasă și Bacalaureat

În detaliu

Python alege între ramuri cu if, elif și else și repetă pași cu for și while. După o condiție sau după antetul unei bucle se scriu două puncte, iar corpul se indentează. Condițiile se leagă prin and, or și not. Ramurile se verifică de sus în jos și se execută numai prima a cărei condiție este adevărată; else tratează restul cazurilor. Bucla for parcurge elementele unei secvențe, de obicei obținute cu range: range(n) produce , range(a, b) produce , iar range(a, b, p) merge din p în p și acceptă p negativ, dar nu zero. Valoarea de sfârșit nu este niciodată inclusă: range(5, 0, -2) dă . Bucla while repetă cât timp condiția este adevărată și poate executa zero ori. Instrucțiunea break încheie bucla curentă, iar continue trece la următoarea iterație.

Exemplul 1 — suma numerelor impare.

suma = 0
for i in range(1, 4):
    if i % 2 == 1:
        suma += i
print(suma)

Bucla ia valorile 1, 2 și 3. La 1 suma devine 1; la 2 testul i % 2 == 1 este fals și suma rămâne 1; la 3 suma devine 4. Se afișează 4. Stările sumei sunt . Timpul este proporțional cu numărul de valori generate, iar memoria auxiliară este constantă.

Exemplul 2 — domenii range. list(range(5)) este [0, 1, 2, 3, 4], list(range(2, 8)) este [2, 3, 4, 5, 6, 7], list(range(10, 0, -3)) este [10, 7, 4, 1], iar list(range(5, 0, -2)) este [5, 3, 1]. Pentru range(3) bucla se execută de trei ori, pentru range(0) de zero ori. Numărul de valori din range(a, b) este când .

Exemplul 3 — while, break și else. O buclă while se folosește când numărul de pași nu este cunoscut dinainte. Șirul lui Collatz începe de la : dacă este par se împarte la 2, altfel devine , până când ajunge la 1. Ciclul face 111 de pași pentru .

n = 27
pasi = 0
while n != 1:
    n = n // 2 if n % 2 == 0 else 3 * n + 1
    pasi += 1
print(pasi)

Programul afișează 111. Condiția trebuie să se schimbe în corp, altfel bucla nu se oprește. Pentru ramura elif, valoarea în

if x < 5:
    print("mic")
elif x < 10:
    print("mijlociu")
else:
    print("mare")

duce la afișarea cuvântului mijlociu: prima condiție este falsă, a doua este adevărată și else nu se mai verifică. Un for poate avea o ramură else, executată numai dacă bucla s-a terminat fără break: for i in range(3): pass urmat de else: print("gata") afișează gata, pe când un break din buclă ar sări peste else.

Exemplul 4 — break și continue într-o singură buclă. Urmărește cu atenție ordinea testelor:

suma = 0
for i in range(1, 8):
    if i % 3 == 0:
        continue
    if suma > 10:
        break
    suma += i
print(suma, i)

Variabila i parcurge valorile de la 1 la 7. Pentru 1, 2, 4 și 5 suma crește la 1, 3, 7 și 12. Valoarea 3 este sărită de continue, iar la 6 testul i % 3 == 0 sare din nou peste adunare, fără să ajungă la testul lui break. La suma este 12, mai mare decât 10, deci break încheie bucla înainte de adunare. Se afișează 12 7; după ieșirea din buclă, variabila i păstrează ultima valoare primită.

Exemplul 5 — indentarea hotărăște ce se repetă. Programul următor afișează sumele parțiale , și :

suma = 0
for i in range(1, 4):
    suma += i
    print(suma)

Aici print este în corpul buclei și afișează 1, 3, 6, fiecare pe linia lui. Dacă print(suma) se scrie fără indentare, după buclă, se afișează doar 6. Aceeași eroare apare când suma = 0 este pus în interiorul buclei: suma se reinițializează la fiecare pas și rezultatul final este 3, ultima valoare a lui i.

Greșeli frecvente

  • Greșit: range(4) produce 1, 2, 3, 4.
    Corect: produce 0, 1, 2, 3; valoarea 4 este exclusă.
  • Greșit: într-un lanț if / elif se execută toate ramurile adevărate.
    Corect: se execută numai prima ramură a cărei condiție este adevărată.
  • Greșit: blocul unei bucle se recunoaște după acolade.
    Corect: se recunoaște după două puncte și indentare.
în contul tăuPremium

Testează-te pe această lecție

Lecția o citești aici, fără cont. Testele pe lecții și capitole sunt în cont, cu grile originale Didaxis și explicația fiecăreia: gratuit 10 grile pe zi, fără limită cu Premium, 49 de lei pe lună pentru fiecare copil.

Înainte și după

Surse și referințe

Redactare proprie, conform programei:

  • OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1632–1633 și 1653–1654; OMEC 4370/2026, anexa 8, p. 155–156; rocnee.eu
  • OMEC 4370/2026, anexa 8, Informatică IX intensiv, p. 155–156
  • OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1632–1633; rocnee.eu
  • OMEC 6930/2025, anexa 66, Informatică IX CS militar, Monitorul Oficial nr. 4 bis/8.01.2026, pp. 2563–2578; cdn.edupedu.ro; centralizator oficial actualizat prin OMEC 3224/2026, legislatie.just.ro
  • OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1653–1654; rocnee.eu

Documente consultate

  • Programele școlare noi de informatică pentru clasele X–XII (OMEC 4370/2026, MO 591 bis/20.07.2026), CNCE, p. 155–156; rocnee.eu
  • Python Software Foundation, Python Tutorial, capitolul 4, docs.python.org/3/tutorial/controlflow.html

Desene: Redactare proprie (desen original), conform OMEC 4370/2026, anexa 8, Informatică IX intensiv; rocnee.eu

lecțiile sunt gratuite

Ai citit lecția. Acum verifică-te.