🐍

Structuri Conditionale (if/elif/else)

Programare Python Începător 1 min citire 0 cuvinte

Structuri Conditionale in Python

Introducere

Structurile conditionale permit executarea diferitelor blocuri de cod in functie de anumite conditii. Python foloseste if, elif si else pentru controlul fluxului.

Instructiunea if

Executa un bloc de cod doar daca o conditie este True:

varsta = 18

if varsta >= 18:
    print("Esti major")

Indentarea

Important: Python foloseste indentarea (spatii) pentru a delimita blocurile de cod. Standard sunt 4 spatii.

if conditie:
    # Acest bloc se executa daca conditia e True
    instructiune1
    instructiune2
# Aici se termina blocul if

Instructiunea if-else

Executa un bloc daca conditia e True, altul daca e False:

varsta = 16

if varsta >= 18:
    print("Esti major")
else:
    print("Esti minor")

Instructiunea if-elif-else

Pentru verificarea mai multor conditii:

nota = 8

if nota >= 9:
    print("Excelent")
elif nota >= 7:
    print("Bine")
elif nota >= 5:
    print("Satisfacator")
else:
    print("Nesatisfacator")

Ordinea conteaza!

Conditiile sunt evaluate de sus in jos. Prima conditie adevarata este executata:

x = 15

# Gresit - prima conditie e mereu True pentru x > 10
if x > 5:
    print("Mai mare ca 5")    # Se executa mereu
elif x > 10:
    print("Mai mare ca 10")   # Nu se ajunge aici niciodata

# Corect - ordine de la specific la general
if x > 10:
    print("Mai mare ca 10")   # Se executa
elif x > 5:
    print("Mai mare ca 5")

Conditii Complexe

Foloseste operatori logici pentru conditii multiple:

varsta = 25
are_permis = True

# AND - ambele conditii trebuie sa fie True
if varsta >= 18 and are_permis:
    print("Poate conduce")

# OR - cel putin o conditie True
nota = 4
if nota >= 5 or nota == 4:
    print("Acceptat")

# NOT - neaga conditia
este_ploaie = False
if not este_ploaie:
    print("Putem iesi afara")

If-uri Imbricate

Un if poate fi in interiorul altui if:

varsta = 20
are_permis = True

if varsta >= 18:
    if are_permis:
        print("Poate conduce")
    else:
        print("Trebuie sa obtina permis")
else:
    print("Prea tanar pentru permis")

Expresia Conditionala (Operator Ternar)

O forma compacta pentru atribuiri conditionale:

# Sintaxa: valoare_true if conditie else valoare_false

varsta = 20
status = "major" if varsta >= 18 else "minor"
print(status)  # major

# Echivalent cu:
if varsta >= 18:
    status = "major"
else:
    status = "minor"

Exemple practice:

# Valoare absoluta
x = -5
abs_x = x if x >= 0 else -x  # 5

# Minim intre doua numere
a, b = 10, 5
minim = a if a < b else b  # 5

# Paritate
n = 7
paritate = "par" if n % 2 == 0 else "impar"  # impar

Instructiunea pass

pass este un placeholder pentru blocuri goale:

x = 10

if x > 5:
    pass  # TODO: implementare ulterioara
else:
    print("x este mic")

Valori “Truthy” si “Falsy”

In conditii, urmatoarele sunt evaluate ca False:

  • False
  • None
  • 0, 0.0
  • "" (string gol)
  • [], (), {} (colectii goale)

Toate celelalte valori sunt True:

lista = [1, 2, 3]

# Verifica daca lista nu e goala
if lista:
    print("Lista are elemente")

# Mai bine decat:
if len(lista) > 0:
    print("Lista are elemente")

Compararea cu None

Foloseste is pentru compararea cu None:

rezultat = None

# Corect
if rezultat is None:
    print("Fara rezultat")

# Functioneaza dar nerecomandat
if rezultat == None:
    print("Fara rezultat")

Greseli Frecvente

1. Uitarea celor doua puncte

if x > 5     # SyntaxError: expected ':'
    print("Mare")

if x > 5:    # Corect
    print("Mare")

2. Indentare incorecta

if x > 5:
print("Mare")  # IndentationError

if x > 5:
    print("Mare")  # Corect

3. Folosirea = in loc de ==

if x = 5:    # SyntaxError
    print("Cinci")

if x == 5:   # Corect
    print("Cinci")

4. Conditii care nu se exclud

# Ambele se pot executa
if x > 5:
    print("Mare")
if x > 3:
    print("Si asta")  # Se executa si asta!

# Doar una se executa
if x > 5:
    print("Mare")
elif x > 3:
    print("Mediu")

Puncte Cheie pentru Examen

  • Indentarea defineste blocurile (4 spatii standard)
  • Conditiile sunt evaluate de sus in jos
  • Prima conditie adevarata opreste evaluarea
  • Operator ternar: val_true if cond else val_false
  • Valori “falsy”: False, None, 0, "", [], {}
  • Foloseste is None, nu == None

Intrebari de Verificare

  1. Ce afiseaza: print("Da" if 0 else "Nu")?
  2. Cate conditii elif pot avea intr-un if?
  3. Ce se intampla daca uiti : dupa if?
  4. Ce inseamna ca o lista goala este “falsy”?

📚 Articole Corelate