11 Питхон библиотека и модула које сваки програмер треба да зна

Biblioteke i moduli olakšavaju život programerima.

Kada radite na projektima, možete se suočiti sa situacijama u kojima standardno kodiranje programskog jezika nije dovoljno. Tada su nam potrebne biblioteke i moduli da bismo prevazišli te izazove.

Srećom, Python podržava veliki broj modula i biblioteka. Python ima ugrađene module, kao i biblioteke i module nezavisnih proizvođača. Pogledaćemo i integrisane i module trećih strana, koji su veoma korisni za Python projekte. Hajde da prvo istražimo ugrađene module.

# Ugrađeni moduli

Python dolazi sa mnoštvom ugrađenih modula za različite upotrebe. Proučićemo module jedan po jedan prema njihovoj upotrebi.

Kolekcije – Tipovi podataka kontejnera

Python poseduje razne tipove kolekcija za čuvanje zbirki podataka. Na primer, tuple, lista, dict, itd., su neke od ugrađenih kolekcija Pythona. Modul kolekcija pruža dodatne funkcionalnosti ugrađenim kolekcijama.

Ako uzmemo deque kolekciju podataka iz modula kolekcija, ona podseća na Python listu. Ali, možemo gurati i izbacivati elemente sa obe strane. Brža je od liste. Možete koristiti deque u zavisnosti od vaših potreba. Pogledajmo primer kodiranja sa collection.deque kolekcijom podataka.

import collections
nums = [1, 2, 3]
# kreiranje deque kolekcije iz liste
deque = collections.deque(nums)

print(deque)

# dodavanje elementa na kraj
deque.append(4)

print(deque)

# dodavanje elementa na početak
deque.appendleft(0)

print(deque)

# uklanjanje elementa sa kraja
deque.pop()

print(deque)

# uklanjanje elementa sa početka
deque.popleft()

print(deque)

Pokrenite gornji kod; pogledajte rezultate. Imamo i druge zbirke podataka u modulu zbirke.

Neke od njih su:

Counter
Vraća dict koji sadrži učestalost elemenata iz liste.

To je podklasa klase dict.

UserList
Koristi se za brzu podklasu liste.
UserDict
Koristi se za brzu podklasu dict-a.
UserString
Koristi se za brzu podklasu str.

Posetite dokumentaciju kolekcije modula da biste istražili sve zbirke podataka i metode.

Brza napomena: – Koristite ugrađeni metod dir(object) u Pythonu da biste videli sve metode objekta.

CSV – rukovanje datotekama

Možemo da koristimo CSV (vrednosti razdvojene zarezima) datoteke za čuvanje tabelarnih podataka. To je najčešće korišćen format za uvoz i izvoz podataka iz tabela i baza podataka. Python dolazi sa modulom koji se zove CSV za rukovanje CSV datotekama.

Pogledajmo primer čitanja podataka iz CSV datoteke.

Napravite datoteku pod imenom sample.csv na svom laptopu i kopirajte sledeće podatke.

Name,Age,Graduation Year

Hafeez,21,2021

Aslan,23,2019

Rambabu,21,2021

Imamo metode za čitanje i pisanje u CSV modulu. Videćemo kako da čitamo podatke iz CSV datoteka pomoću CSV modula.

import csv

with open('sample.csv') as file:
    # kreiranje čitača
    reader = csv.reader(file)
    
    # čitanje liniju po liniju pomoću petlje
    for row in reader:
        # red je lista koja sadrži elemente iz CSV datoteke
        # spajanje liste korišćenjem metode join(list)
        print(','.join(row))

Pokrenite gornji kod da biste videli rezultate.

Takođe ćemo imati objekat pod nazivom csv.writer() za upisivanje podataka u CSV datoteku. Igrajte se sa drugim metodama na svoju ruku koristeći ugrađene metode dir() i help(). Imamo još jedan modul koji se zove JSON, koji se koristi za rukovanje JSON datotekama. To je takođe ugrađeni modul.

Random – generisanje

Python ima modul koji se zove random koji omogućava nasumično generisanje podataka. Možemo generisati bilo šta nasumično koristeći različite metode random modula. Ovaj modul možete koristiti u aplikacijama kao što su tic-tac-toe, igra kockicama, itd.

Pogledajmo jednostavan program za generisanje nasumičnih celih brojeva iz datog opsega.

import random

# generisanje nasumičnog broja iz opsega 1-100
print(random.randint(1, 100))

Ostale metode random modula proveravate koristeći metode dir() i help(). Hajde da napišemo malu i jednostavnu igru koristeći nasumični modul. Možemo je nazvati igra pogađanja brojeva.

Šta je igra pogađanja brojeva?

Program će generisati nasumični broj u rasponu od 1 – 100. Korisnik će pogađati broj dok se ne poklopi sa nasumičnim brojem koji je generisao program. Svaki put ćete štampati da li je broj korisnika manji od nasumičnog broja ili veći od nasumičnog broja. Zatim će izvorni kod prikazati broj pogađanja.

Pogledajte kod ispod za gornji program.

# uvoz random modula
import random

# generisanje nasumičnog broja
random_number = random.randint(1, 100)

# inicijalizacija broja pogađanja na 0
guess_count = 0

# pokretanje petlje dok korisnik ne pogodi nasumični broj
while True:
    # dobijanje korisničkog unosa

    user_guessed_number = int(input("Unesite broj u opsegu od 1-100:- "))

    # provera jednakosti
    if user_guessed_number == random_number:
        print(f"Pogodili ste broj u {guess_count} pogađanja")
        # prekidanje petlje
        break
    elif user_guessed_number < random_number:
        print("Vaš broj je mali")
    elif user_guessed_number > random_number:
        print("Vaš broj je veliki")

    # povećanje broja pogađanja
    guess_count += 1

Tkinter – GUI aplikacije

Tkinter je ugrađeni modul za razvoj GUI (Graphical User Interface) aplikacija. Pogodan je za početnike. Možemo da razvijemo GUI aplikacije kao što su kalkulator, sistem za prijavljivanje, uređivač teksta, itd. Postoji mnogo resursa za učenje razvoja GUI-a sa Tkinterom.

Najbolja podrška je pratiti zvaničnika dokumentaciju. Da biste započeli sa Tkinterom, idite na dokumentaciju i počnite da kreirate prelepe GUI aplikacije.

# Moduli treće strane

Requests – HTTP zahtevi

Modul Requests se koristi za slanje svih vrsta HTTP zahteva na server. Omogućava slanje HTTP/1.1 zahteva. Takođe možemo da dodamo zaglavlja, podatke i druge stvari koristeći Python rečnike. Pošto je modul treće strane, moramo ga instalirati. Pokrenite sledeću komandu u terminalu ili komandnoj liniji da biste instalirali modul Requests.

pip install requests

Lako je raditi sa modulom Requests. Možemo da počnemo da radimo sa zahtevima bez ikakvog prethodnog znanja. Hajde da vidimo kako da pošaljemo zahtev za dobijanje i šta on vraća.

import requests

# slanje GET zahteva
request = requests.get("https://www.google.com/")

# 
print(request.status_code)
print(request.url)
print(request.request)

Gornji kod će odštampati status_code, URL i metod zahteva (GET, POST). Dobićete i izvor URL-a. Možete mu pristupiti pomoću bajtova request.content. Idite na dokumentaciju modula Requests i istražite više.

BeautifulSoup4 – web scraping

Biblioteka BeautifulSoup se koristi za web scraping. To je zgodan modul za rad. Čak i početnici mogu početi da rade sa njim koristeći dokumentaciju. Pogledajte primer koda da biste uklonili detalje izveštaja klijenata.

Možete instalirati BeautifulSoup tako što ćete upisati sledeću komandu u terminal/komandnu liniju.

pip install beautifulsoup4

I, jednostavan program za vaše prvo scraping.

## Scraping liste proizvoda ConsumerReport koristeći BeautifulSoup

## uvoz bs4, requests modula
import bs4
import requests

## inicijalizacija url-a
url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm"

## dobijanje odgovora sa stranice koristeći get metod requests modula
page = requests.get(url)

## čuvanje sadržaja stranice u promenljivoj
html = page.content

## kreiranje BeautifulSoup objekta
soup = bs4.BeautifulSoup(html, "lxml")

## pogledajte klasu ili id taga koji sadrži nazive i linkove
div_class = "crux-body-copy"

## dobijanje svih div-ova pomoću find_all metode
div_tags = soup.find_all("div", class_=div_class) ## pronalaženje div-ova koji imaju pomenutu klasu

## videćemo sve tagove sa a tagovima koji imaju ime i vezu unutar div-a
for tag in div_tags:
    print(tag)

Pokrenite gornji kod da biste videli magiju scraping-a veba. Postoji više framework-a za scraping veba koje možete isprobati.

# Nauka o podacima i mašinsko učenje

Postoje neke biblioteke specijalno kreirane za nauku o podacima i mašinsko učenje. Sve su razvijene u C-u. Brze su munje.

Numpy

Numpy se koristi za naučne proračune.

Omogućava nam da radimo sa višedimenzionalnim nizovima. Implementacija nizova ne postoji u Pythonu. Uglavnom programeri koriste numpy u svojim projektima mašinskog učenja. Lako se uči i biblioteka je otvorenog koda. Skoro svaki inženjer mašinskog učenja ili naučnik podataka koristi ovaj modul za složena matematička izračunavanja.

Pokrenite sledeću komandu da biste instalirali numpy modul.

pip install numpy

Pandas

Pandas je modul za analizu podataka. Podatke možemo na najefikasniji način filtrirati koristeći biblioteku pandas. Nudi različite vrste struktura podataka koje su zgodne za rad. Takođe omogućava rukovanje datotekama sa različitim formatima datoteka.

Instalirajte modul koristeći sledeću komandu.

pip install pandas

Matplotlib

Matplotlib je biblioteka za crtanje 2D grafikona. Možete da vizuelizujete podatke koristeći Matplotlib.

Možemo da generišemo slike figura u različitim formatima. Mi iscrtavamo različite tipove dijagrama kao što su trakasti grafikoni, grafikoni grešaka, histogrami, dijagrami rasipanja, itd. Možete instalirati matplotlib koristeći sledeću komandu.

pip install matplotlib

Brza napomena: – Možete instalirati Anaconda da biste dobili sve biblioteke i module potrebne za nauku o podacima.

Ako ozbiljno želite da naučite Python za nauku o podacima i ML, pogledajte ovaj sjajan Udemy kurs.

# Web framework-ovi

U Pythonu možemo pronaći mnoge web framework-e. Razgovaraćemo o dva framework-a koja se široko koriste od strane programera. Dva framework-a su Django i Flask.

Django

Django je web framework otvorenog koda razvijen u Pythonu. Pogodno je kreirati web stranice pomoću Djanga. Možemo da generišemo bilo koju vrstu sajtova koristeći ovaj framework. Neki od najpopularnijih sajtova napravljenih pomoću Djanga su Instagram, Bitbucket, Disqus, Mozilla Firefox, itd.

  • Možemo brzo da napravimo složene web stranice sa karakteristikama Djanga.
  • Django već obavlja mnogo zadataka potrebnih za razvoj veba.
  • Takođe pruža sigurnost za napade SQL Injection, cross-site scripting, cross-site request forgery i clickjacking.
  • Možemo da napravimo bilo koju web lokaciju od sistema za upravljanje sadržajem do društvenih sajtova.

Dokumentacija Djanga je nedvosmislena. Morate biti upoznati sa Pythonom za Django. Ali ne brinite ako niste. Učenje Djanga je lako.

Flask

Flask je mikro web framework razvijen u Pythonu.

Više je pythonic od Djanga. Ima odličnu dokumentaciju ovde. Koristi Jinja šablonski mehanizam. Veoma je složeno napraviti velike web stranice sa Flask-om. Većina funkcija kao što su usmeravanje URL-ova, slanje zahteva, bezbedni kolačići, sesije, itd., prisutni su i u Djangu i u Flasku.

Izaberite framework na osnovu složenosti vaše web stranice. Django postaje sve popularniji među programerima. To je najčešće korišćeni framework za web razvoj u Pythonu.

Zaključak

Nadam se da ste se upoznali sa različitim modulima, bibliotekama i framework-ovima za Python.

Svako je jednom početnik.

Šta god želite da počnete, prvo idite na dokumentaciju i počnite da je učite. Ako ne možete da razumete dokumentaciju, pronađite ubrzane kurseve na obrazovne web stranice.