Fișă Teoretică Python – Nivel Avansat
1. Tipuri de date și variabile
Python are tipuri de date dinamice. Variabilele sunt create la atribuire. Tipuri fundamentale:
- int: numere întregi (ex: 42)
- float: numere zecimale (ex: 3.14)
- bool: True / False (fals este și 0, "", [], etc.)
- str: șiruri de caractere
- list: liste mutabile
- tuple: secvențe imuabile
- dict: colecții de perechi cheie:valoare
- set: mulțimi de elemente unice
Conversii:
int("5") → 5, str(5) → "5", list("abc") → ['a', 'b', 'c']
2. Operatori și expresii
Operatori aritmetici: +, -, *, /, //, %, **
Operatori logici: and, or, not
Comparare: ==, !=, >, <, >=, <=
Operatori de identitate: is, is not
Operatori de apartenență: in, not in
Operatorul walrus := permite atribuire în expresii:
if (n := len(x)) > 10: print(n)
3. Structuri de control
Instrucțiuni condiționale: if, elif, else
Bucle: for, while
Instrucțiuni de control: break, continue, pass
Iterare cu enumerate și range:
for i, val in enumerate(['a', 'b']): print(i, val)
for x in range(5, 0, -1): print(x)
Fișă Teoretică Python – Nivel Avansat
4. Funcții și lambda
Definirea funcțiilor: def nume(parametri): return valoare
Parametri: poziționali, cu valoare implicită, *args (tuplu), **kwargs (dicționar)
Exemplu:
def adunare(a, b=2): return a + b
Funcții lambda:
f = lambda x, y: x + y
print(f(2, 3)) # 5
5. List, dict și set comprehensions
List comprehension:
[x**2 for x in range(5) if x % 2 == 0] → [0, 4, 16]
Dict comprehension:
{x: x**2 for x in range(3)} → {0: 0, 1: 1, 2: 4}
Set comprehension:
{x % 3 for x in range(6)} → {0, 1, 2}
6. Stringuri și metode utile
Metode frecvente:
- .lower(), .upper(), .capitalize()
- .find(), .replace(), .split(), .join()
- .strip(), .startswith(), .endswith()
Slicing:
s = 'Python'
s[::-1] → 'nohtyP'
s[1:4] → 'yth'
f-strings:
nume = 'Ana'
f"Salut, {nume}!" → 'Salut, Ana!'
Fișă Teoretică Python – Nivel Avansat
7. Excepții și tratarea erorilor
try / except / else / finally
try:
x = int('abc')
except ValueError:
print("Conversie invalidă")
else:
print("Totul a mers ok")
finally:
print("Cleanup")
Excepții comune: ZeroDivisionError, TypeError, IndexError, KeyError
8. Clase și programare orientată pe obiecte (OOP)
class Animal:
def __init__(self, nume):
self.nume = nume
def vorbeste(self):
return f"{self.nume} scoate un sunet"
class Caine(Animal):
def vorbeste(self):
return f"{self.nume} latră"
Metode speciale: __init__, __str__, __repr__, __len__, __eq__
@staticmethod – metodă fără self
@classmethod – primește cls ca prim argument
9. Decoratori și funcții de ordin înalt
def logger(f):
Fișă Teoretică Python – Nivel Avansat
def wrapper(*args, **kwargs):
print(f"Apelăm {f.__name__}")
return f(*args, **kwargs)
return wrapper
@logger
def salut(): print("Salut!")
Funcții utile: map(), filter(), zip(), enumerate()
10. Generatoare și yield
def countdown(n):
while n > 0:
yield n
n -= 1
gen = countdown(3)
next(gen) → 3, next(gen) → 2
Diferență față de return: yield păstrează starea între apeluri.
11. Lucru cu fișiere și context manageri
with open('fisier.txt', 'r') as f:
date = f.read()
Moduri de deschidere: 'r', 'w', 'a', 'rb', 'wb'
Context managerii asigură închiderea automată a resurselor.
12. Module și pachete
import math
math.sqrt(16) → 4.0
Fișă Teoretică Python – Nivel Avansat
import random
random.randint(1, 10)
from datetime import datetime
datetime.now()
Module uzuale: os, sys, collections, itertools, functools
13. Introspecție și meta-programare
getattr(obj, 'atribut')
hasattr(obj, 'atribut')
type(obj), isinstance(obj, Tip)
globals(), locals(), vars(), dir(obj)
__import__('math') → import dinamic