Acest curs explorează colecțiile Python, clasele interne, expresiile lambda și lucrul cu fluxuri de date.
Colecțiile sunt structuri de date predefinite care permit stocarea și manipularea eficientă a informațiilor.
fructe = ["mere", "pere", "banane"]
fructe.append("portocale")
print(fructe) # Output: ['mere', 'pere', 'banane', 'portocale']
coordonate = (10, 20)
print(coordonate[0]) # Output: 10
litere = {"a", "b", "c"}
litere.add("d")
print(litere) # Output: {'a', 'b', 'c', 'd'}
student = {"nume": "Alex", "varsta": 22}
print(student["nume"]) # Output: Alex
Clasele interne sunt clase definite în interiorul altor clase și sunt utile pentru capsularea logicii.
class Masina:
class Motor:
def __init__(self, putere):
self.putere = putere
def __init__(self, marca, putere_motor):
self.marca = marca
self.motor = self.Motor(putere_motor)
m = Masina("BMW", 300)
print(m.motor.putere) # Output: 300
Expresiile lambda permit definirea funcțiilor anonime într-un mod concis.
patrat = lambda x: x * x
print(patrat(5)) # Output: 25
numere = [1, 2, 3, 4]
patrate = list(map(lambda x: x**2, numere))
print(patrate) # Output: [1, 4, 9, 16]
numere = [1, 2, 3, 4, 5]
perechi = list(filter(lambda x: x % 2 == 0, numere))
print(perechi) # Output: [2, 4]
În Python, fluxurile de date pot fi manipulate eficient folosind iteratoare și generatoare.
def generator_numere(n):
for i in range(n):
yield i
for num in generator_numere(5):
print(num) # Output: 0 1 2 3 4
with open("fisier.txt", "r") as f:
for linie in f:
print(linie.strip())