Didaxis
lecție · Informatică

Structura programului Python

Indentare, instrucțiuni, module și execuție interpretată.

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

Pe scurt

Un program Python execută instrucțiunile de la începutul fișierului în ordinea în care apar, cu excepția ramurilor și buclelor. Un bloc este recunoscut prin indentare, nu prin acolade. Variabilele primesc valori prin atribuire, de exemplu x = 7. Funcțiile trebuie definite sau importate înainte de folosirea lor în fluxul execuției.

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

În detaliu

Un program Python este un fișier de instrucțiuni pe care interpretorul le execută una după alta, de sus în jos. Spre deosebire de C++, nu există funcție main obligatorie și nici acolade: blocurile (corpul unui if, al unui for, al unei funcții) se recunosc prin indentare, adică prin deplasarea instrucțiunilor spre dreapta cu același număr de spații, de obicei patru. Antetul unui bloc se încheie cu două puncte. O variabilă apare la prima atribuire (x = 7) și nu se declară cu tip; tipul este al valorii păstrate. Comentariul începe cu #. Funcțiile se definesc cu def și trebuie definite înainte de a fi apelate în fluxul execuției. Funcția input() citește o linie ca text, deci pentru calcule numerice se convertește cu int(...) sau float(...); print(...) afișează valorile separate prin spațiu.

Exemplul 1 — un program cu funcție și decizie.

def dublu(x):
    return 2 * x

numar = int(input())
if numar > 0:
    print(dublu(numar))
else:
    print(0)

Pentru intrarea 3 condiția numar > 0 este adevărată, funcția întoarce 6 și se afișează 6. Pentru intrarea -2 se afișează 0. Corpul funcției, ramura if și ramura else sunt blocuri separate, fiecare indentat. Dacă print(dublu(numar)) ar avea altă indentare decât restul blocului if, interpretorul ar semnala IndentationError, o eroare de sintaxă care oprește programul înainte să ruleze orice instrucțiune.

Exemplul 2 — module. Funcțiile mai rar folosite se află în module și se aduc în program cu import. După import math, funcțiile modulului se apelează cu prefixul math.:

import math
print(math.sqrt(16), math.floor(-2.3), math.ceil(2.1))

Programul afișează 4.0 -3 3: rădăcina pătrată este un număr real, iar floor și ceil dau cel mai mare întreg care nu depășește argumentul, respectiv cel mai mic întreg care nu este sub el. Constanta este math.pi, cu valoarea 3,141592653589793.

Exemplul 3 — execuția interpretată. Interpretorul parcurge instrucțiunile la rulare: o eroare dintr-o ramură neexecutată nu se manifestă până când execuția ajunge acolo. În programul

x = 7
if x < 5:
    print(y)
print(x)

variabila y nu există, dar ramura if nu se execută pentru , deci programul afișează 7 fără eroare. Dacă valoarea lui x ar fi 3, interpretorul ar semnala NameError, pentru că y nu a primit valoare. Spre deosebire de C++, unde compilatorul verifică tot programul înainte de rulare, în Python multe erori apar abia când instrucțiunea respectivă este executată. Instrucțiunile se pot încerca și una câte una în consola interactivă: după x = 7, expresia x + 1 afișează imediat 8.

Calculele numerice cer atenție la conversie: input() întoarce text, iar input() + input() pentru 3 și 4 produce 34, concatenarea celor două texte, nu suma 7.

Exemplul 4 — indentarea schimbă sensul programului. Cele două programe de mai jos au aceleași instrucțiuni, dar print(s) are indentări diferite.

n = 6
s = 0
for i in range(1, n + 1):
    if i % 2 == 0:
        s = s + i
    print(s)
n = 6
s = 0
for i in range(1, n + 1):
    if i % 2 == 0:
        s = s + i
print(s)

În primul program print(s) face parte din corpul lui for, deci se execută la fiecare dintre cele 6 iterații și afișează 0 2 2 6 6 12, câte o valoare pe linie. Valorile lui s după iterațiile sunt 0, 2, 2, 6, 6, 12, pentru că numai , și intră în ramura if. În al doilea program print(s) nu mai este indentat, aparține fluxului principal și se execută o singură dată, după terminarea buclei: se afișează 12, adică . Niciuna dintre variante nu produce eroare, deci diferența se vede doar în rezultat.

Greșeli frecvente

  • Greșit: în Python blocurile se delimitează prin acolade.
    Corect: se delimitează prin două puncte și indentare.
  • Greșit: input() întoarce direct un număr.
    Corect: întoarce text; pentru calcule se convertește cu int() sau float().
  • Greșit: o eroare dintr-o ramură neexecutată este semnalată înainte de rulare.
    Corect: interpretorul o semnalează abia când execuția ajunge la ea, cu excepția erorilor de sintaxă.
î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, capitolele 2–4, docs.python.org/3/tutorial/

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.