Curs 1 - Introducere în Python și Programare Orientată pe Obiecte

Acest curs introduce limbajul Python, diferențele față de alte limbaje și conceptele fundamentale ale programării orientate pe obiecte.

1. Introducere în Python

Python este un limbaj de programare interpretat, de nivel înalt, cu o sintaxă simplă și citibilă. Este utilizat în domenii variate, de la dezvoltare web, AI și știința datelor până la scripting și automatizări.

2. Diferențe între Python și Alte Limbaje

Python este diferit de C, C++ și Java prin mai multe aspecte:

- Sintaxă mai simplă: Nu necesită tipuri explicite și folosirea punctului și virgulei (`;`).

- Management automat al memoriei: Python folosește un garbage collector, spre deosebire de C/C++ unde trebuie să gestionezi manual memoria.

- Interpretat, nu compilat: Python rulează printr-un interpretor, nu printr-un compilator.

- Tipare dinamice: În Python, variabilele nu au un tip fix, spre deosebire de Java sau C++.

3. Interpretorul Python

Python poate fi rulat din interpretor sau ca un script. Deschiderea interpretorului se face prin comanda:

python3

Se pot executa comenzi direct în interpretor:

>>> print("Salut, Python!")
Salut, Python!

4. Conceptul de Variabile în Python

În Python, o variabilă este doar o referință către o zonă de memorie.

a = 1  # 'a' este o referință către valoarea 1
print(id(a))  # Afișează adresa de memorie

Dacă atribuim o altă valoare variabilei, referința se schimbă.

a = 5  # 'a' indică acum o altă zonă de memorie
print(id(a))  # Noua adresă de memorie este diferită

5. Programare Orientată pe Obiecte în Python

Python suportă programarea orientată pe obiecte (POO), unde datele și funcționalitatea sunt grupate în clase și obiecte.

a) Definirea unei Clase și Crearea unui Obiect

class Masina:
    def __init__(self, marca, model):
        self.marca = marca
        self.model = model
    
    def afiseaza_info(self):
        print(f"Marca: {self.marca}, Model: {self.model}")

# Creare obiect
masina1 = Masina("Dacia", "Logan")
masina1.afiseaza_info()

b) Constructori în Python

Constructorul `__init__` este o metodă specială care se apelează automat la crearea unui obiect.

class Student:
    def __init__(self, nume, varsta):
        self.nume = nume
        self.varsta = varsta

student1 = Student("Maria", 21)
print(student1.nume, student1.varsta)

c) Atribute și Metode ale Obiectelor

class Telefon:
    def __init__(self, marca, pret):
        self.marca = marca
        self.pret = pret
    
    def descriere(self):
        return f"Telefon {self.marca} costa {self.pret} lei."

telefon1 = Telefon("Samsung", 3000)
print(telefon1.descriere())

Acest curs a oferit o introducere în Python și conceptele fundamentale ale programării orientate pe obiecte. În următorul curs vom explora moștenirea, polimorfismul și alte aspecte avansate ale POO în Python.

Resurse suplimentare: