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.