11 biblioteci și module Python pe care fiecare dezvoltator ar trebui să le cunoască

Bibliotecile și modulele sunt unelte esențiale pentru un programator, simplificând munca și extinzând capacitățile codului.

În cadrul proiectelor software, adesea ne confruntăm cu situații unde metodele standard de programare nu sunt suficiente. În aceste cazuri, bibliotecile și modulele devin indispensabile, oferind funcționalități suplimentare.

Python, un limbaj versatil, pune la dispoziție o gamă largă de module și biblioteci, atât încorporate, cât și create de terți. Vom explora câteva dintre acestea, evidențiind beneficiile pe care le aduc în dezvoltarea proiectelor. Vom începe cu modulele integrate.

# Module Integrate

Python include un set generos de module predefinite, adaptate diverselor scenarii de utilizare. Vom analiza aceste module, grupându-le în funcție de scopul lor.

Colecții – Structuri de Date Container

Python oferă mai multe tipuri de colecții de date, cum ar fi tuple, liste și dicționare. Modulul `collections` extinde funcționalitățile acestor structuri de date.

De exemplu, `deque` din modulul `collections` se comportă similar cu o listă, dar permite adăugarea și eliminarea elementelor de la ambele capete, oferind o performanță superioară. Iată un exemplu de utilizare:

import collections
numere = [1, 2, 3]
# Crearea unei colecții deque dintr-o listă
coada_dubla = collections.deque(numere)

print(coada_dubla)

# Adăugarea unui element la sfârșit
coada_dubla.append(4)

print(coada_dubla)

# Adăugarea unui element la început
coada_dubla.appendleft(0)

print(coada_dubla)

# Eliminarea elementului de la sfârșit
coada_dubla.pop()

print(coada_dubla)

# Eliminarea elementului de la început
coada_dubla.popleft()

print(coada_dubla)

Rulați acest cod pentru a vedea rezultatele. Modulul `collections` oferă și alte structuri de date utile, precum:

Counter
Calculează frecvența elementelor dintr-o listă, returnând un dicționar.
Este o subclasă a clasei `dict`.
UserList
Utilizată pentru a crea rapid o subclasă a listei.
UserDict
Utilizată pentru a crea rapid o subclasă a dicționarului.
UserString
Utilizată pentru a crea rapid o subclasă a șirului de caractere.

Pentru a explora toate colecțiile și metodele, consultați documentația oficială a modulului collections.

Notă: Utilizați funcția încorporată `dir(obiect)` pentru a vedea toate metodele unui obiect.

CSV – Manipularea Fișierelor

Fișierele CSV (Comma Separated Values) sunt folosite pentru a stoca date tabelare. Modulul `csv` din Python ne permite să lucrăm cu aceste fișiere, facilitând importul și exportul de date.

Iată un exemplu de citire a datelor dintr-un fișier CSV.

Creați un fișier `sample.csv` și adăugați următoarele date:

Nume,Varsta,Anul Absolvirii
Hafeez,21,2021
Aslan,23,2019
Rambabu,21,2021

Modulul CSV include metode pentru citire și scriere. Vom vedea cum citim datele:

import csv

with open('sample.csv') as file:
    # Crearea cititorului CSV
    reader = csv.reader(file)
    
    # Citirea linie cu linie
    for row in reader:
        # row este o listă cu elementele din fișierul CSV
        # afișarea rândului folosind metoda join
        print(','.join(row))

Executați codul pentru a vedea rezultatele. Obiectul `csv.writer()` este folosit pentru a scrie date în fișierele CSV. Experimentați cu celelalte metode folosind `dir()` și `help()`. Modulul `json` este folosit pentru fișierele JSON, fiind, de asemenea, încorporat.

Random – Generare Aleatorie

Modulul `random` din Python permite generarea de date aleatorii. Este util în diverse aplicații, cum ar fi jocuri (tic-tac-toe, jocul de zaruri etc.).

Acest exemplu generează un număr întreg aleatoriu dintr-un interval:

import random

# generarea unui număr aleatoriu între 1 și 100
print(random.randint(1, 100))

Explorați celelalte metode folosind `dir()` și `help()`. Vom construi un joc simplu de ghicire a numerelor:

Jocul constă în generarea unui număr aleatoriu între 1 și 100, pe care utilizatorul trebuie să-l ghicească. Programul va oferi indicii dacă numărul utilizatorului este mai mic sau mai mare, afișând la final numărul de încercări.

Iată codul:

# importarea modulului random
import random

# generarea numărului aleatoriu
numar_aleatoriu = random.randint(1, 100)

# inițializarea numărului de ghiciri
numar_ghiciri = 0

# buclă până când utilizatorul ghicește numărul
while True:
    # obținerea inputului de la utilizator

    numar_utilizator = int(input("Introduceți un număr între 1 și 100:- "))

    # verificarea egalității
    if numar_utilizator == numar_aleatoriu:
        print(f"Ai ghicit numărul din {numar_ghiciri} încercări")
        # ieșirea din buclă
        break
    elif numar_utilizator < numar_aleatoriu:
        print("Numărul tău este prea mic")
    elif numar_utilizator > numar_aleatoriu:
        print("Numărul tău este prea mare")

    # incrementarea numărului de ghiciri
    numar_ghiciri += 1

Tkinter – Aplicații GUI

Tkinter este un modul încorporat pentru dezvoltarea interfețelor grafice (GUI). Este ușor de folosit și ideal pentru începători. Cu Tkinter putem crea diverse aplicații, cum ar fi calculatoare, sisteme de autentificare și editoare de text. Există numeroase resurse online pentru a învăța Tkinter.

Pentru un studiu aprofundat, consultați documentația oficială Tkinter. Începeți să creați propriile interfețe grafice!

# Module Terțe

Requests – Solicitări HTTP

Modulul `requests` permite trimiterea de solicitări HTTP către server. Suportă HTTP/1.1 și permite adăugarea de antete și date folosind dicționare Python. Fiind un modul terță parte, trebuie instalat:

pip install requests

Este simplu să utilizați modulul `requests`, chiar și fără cunoștințe avansate. Iată un exemplu de solicitare GET:

import requests

# trimiterea unei cereri GET
cerere = requests.get("https://www.google.com/")

# afișarea codului de status, URL și metoda cererii
print(cerere.status_code)
print(cerere.url)
print(cerere.request)

Acest cod va afișa codul de status, URL-ul și metoda de solicitare (GET, POST). Puteți accesa sursa URL-ului folosind `cerere.content`. Pentru mai multe detalii, consultați documentația modulului requests.

BeautifulSoup4 – Web Scraping

Biblioteca BeautifulSoup este folosită pentru web scraping, simplificând extragerea datelor din pagini web. Este ușor de învățat chiar și pentru începători. Exemplul următor extrage informații dintr-o pagină web:

Pentru a instala BeautifulSoup, folosiți:

pip install beautifulsoup4

Un exemplu simplu de web scraping:

## Extragerea listei de produse ConsumerReport folosind BeautifulSoup

## importarea modulelor bs4 și requests
import bs4
import requests

## inițializarea URL-ului
url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm"

## obținerea răspunsului de la pagină
page = requests.get(url)

## stocarea conținutului paginii într-o variabilă
html = page.content

## crearea obiectului BeautifulSoup
soup = bs4.BeautifulSoup(html, "lxml")

## identificarea class-ei sau id-ului care conține numele și link-urile
div_class = "crux-body-copy"

## obținerea tuturor div-urilor cu clasa specificată
div_tags = soup.find_all("div", class_=div_class) ## găsirea div-urilor cu clasa menționată

## afișarea tuturor tag-urilor a care conțin numele și link-ul
for tag in div_tags:
    print(tag)

Rulați codul pentru a vedea rezultatele. Există multe alte framework-uri de web scraping pe care le puteți explora.

# Știința Datelor și Învățarea Automată

Există biblioteci special concepute pentru știința datelor și învățarea automată, dezvoltate în C, care oferă performanțe ridicate.

Numpy

Numpy este o bibliotecă pentru calcule științifice, oferind suport pentru lucrul cu tablouri multidimensionale. Este esențială în proiectele de învățare automată.

Pentru a instala numpy:

pip install numpy

Pandas

Pandas este o bibliotecă pentru analiza datelor, oferind structuri de date și instrumente eficiente pentru prelucrare și filtrare. De asemenea, facilitează gestionarea fișierelor în diverse formate.

Pentru a instala Pandas:

pip install pandas

Matplotlib

Matplotlib este o bibliotecă pentru vizualizarea datelor, permițând generarea de grafice 2D diverse (bare, erori, histograme, dispersie etc.).

Pentru a instala Matplotlib:

pip install matplotlib

Notă: Pentru a obține toate bibliotecile necesare pentru știința datelor, puteți instala Anaconda.

Dacă doriți să învățați Python pentru știința datelor și învățare automată, consultați acest curs Udemy.

# Framework-uri Web

Există multe framework-uri web în Python. Vom discuta două dintre cele mai populare: Django și Flask.

Django

Django este un framework web open-source dezvoltat în Python. Este ideal pentru crearea de site-uri web complexe. Printre site-urile populare construite cu Django se numără Instagram, Bitbucket, Disqus și Mozilla Firefox.

  • Django permite construirea rapidă a site-urilor complexe, oferind numeroase funcționalități.
  • Gestionează multe dintre sarcinile necesare în dezvoltarea web.
  • Asigură securitate împotriva atacurilor SQL injection, cross-site scripting și cross-site request forgery.
  • Poate fi folosit pentru a construi diverse tipuri de site-uri, de la sisteme de management al conținutului până la rețele sociale.

Documentația Django este clară și detaliată. Pentru a lucra eficient cu Django, este necesar să aveți cunoștințe de Python. Învățarea Django este un proces simplu.

Flask

Flask este un micro-framework web dezvoltat în Python.

Este mai pitonic decât Django și oferă o documentație excelentă aici. Utilizând motorul de template Jinja, Flask este adecvat pentru proiecte web de dimensiuni mai mici. Facilitățile precum rutarea URL-urilor, gestionarea cererilor, cookie-uri securizate și sesiuni sunt prezente atât în Django, cât și în Flask.

Alegerea framework-ului depinde de complexitatea proiectului. Django este cel mai popular pentru dezvoltarea web în Python.

Concluzie

Sperăm că ați acumulat informații utile despre diverse module, biblioteci și framework-uri pentru Python.

Toți am fost începători la un moment dat.

Indiferent ce doriți să învățați, începeți cu documentația oficială. Dacă întâmpinați dificultăți, căutați cursuri intensive pe site-uri educaționale.