Lekcija 11: Programiranje u Python-u
Python uvod u module i pakete
Čestitam! Stigli ste do jedanaeste lekcije, što znači da ste prošli kroz sve osnovne koncepte Python programiranja. Sada je vreme da naučite kako da iskoristite ogromnu količinu koda koji su drugi programeri već napisali, kao i kako da organizujete sopstveni kod za veće projekte. Ovde na scenu stupaju moduli i paketi.
1. Šta su moduli?
Zamislite da ste napisali nekoliko funkcija za svoj program, kao što su saberi(), oduzmi(), pomnozi(), itd. Umesto da sve te funkcije držite u jednom velikom fajlu, možete ih smestiti u zaseban Python fajl. Taj fajl sa kodom (funkcijama, varijablama, klasama) naziva se modul.
Dakle, modul je jednostavno Python fajl (.py) koji sadrži Python kod. Moduli pomažu da se kod organizuje, čini ga lakšim za održavanje i, što je najvažnije, omogućava vam da taj kod koristite u drugim programima.
Kako da koristite module? (import ključna reč)
Da biste koristili funkcije ili varijable iz modula u svom programu, morate ih importovati pomoću ključne reči import.
Primer: Kreiranje i korišćenje sopstvenog modula
- Kreirajte fajl moje_operacije.py:
# moje_operacije.py
def saberi(a, b):
return a + b
def oduzmi(a, b):
return a – b
PI = 3.14159 - Kreirajte drugi fajl glavni_program.py u istom folderu:
# glavni_program.py
import moje_operacije # Uvozimo ceo modul
rezultat_sabiranja = moje_operacije.saberi(10, 5)
print(f“Sabiranje: {rezultat_sabiranja}“)
rezultat_oduzimanja = moje_operacije.oduzmi(20, 7)
print(f“Oduzimanje: {rezultat_oduzimanja}“)
print(f“Vrednost PI iz modula: {moje_operacije.PI}“)
Kada pokrenete glavni_program.py, Python će izvršiti kod iz moje_operacije.py i omogućiti vam pristup njegovim elementima.
Različiti načini importovanja
- import modul_ime: Uvozi ceo modul. Morate koristiti modul_ime.funkcija() ili modul_ime.varijabla.
- from modul_ime import funkcija_ime: Uvozi samo specifičnu funkciju/varijablu iz modula. Možete je koristiti direktno (funkcija_ime()).
- from modul_ime import *: Uvozi SVE iz modula direktno. Ne preporučuje se za veće projekte jer može dovesti do konflikta imena.
- import modul_ime as skracenica: Uvozi modul i daje mu kraći alias (nadimak). Koristite skracenica.funkcija().
# Primeri različitih import načina (u ‘glavni_program.py’)
import moje_operacije as mo # Uvozimo sa aliasom
print(f“Sabiranje preko aliasa: {mo.saberi(2, 2)}“)
from moje_operacije import oduzmi, PI # Uvozimo samo određene stvari
print(f“Oduzimanje direktno: {oduzmi(100, 50)}“)
print(f“PI direktno: {PI}“)
# from moje_operacije import * # Izbegavajte ovo za veće projekte!
# print(saberi(1,1)) # Sad bi moglo direktno, ali je manje jasno odakle je
2. Standardni (ugrađeni) moduli Pythona
Python dolazi sa ogromnom „Standardnom bibliotekom“ koja sadrži mnoge korisne module spremne za upotrebu. Ne morate ih instalirati – samo ih importujete.
Neki često korišćeni standardni moduli:
- math: Za matematičke funkcije (koren, logaritmi, trigonometrija, PI…).
- random: Za generisanje nasumičnih brojeva.
- datetime: Za rad sa datumima i vremenom.
- os: Za interakciju sa operativnim sistemom (fajlovi, folderi).
Primeri korišćenja standardnih modula:
import math
import random
from datetime import datetime # Uvozimo samo klasu datetime iz modula datetime
# Korišćenje math modula
koren = math.sqrt(25) # Kvadratni koren
print(f“Kvadratni koren od 25 je: {koren}“)
pi_vrednost = math.pi
print(f“Vrednost PI iz math modula: {pi_vrednost}“)
# Korišćenje random modula
slucajan_broj = random.randint(1, 100) # Nasumičan broj između 1 i 100
print(f“Nasumičan broj: {slucajan_broj}“)
# Korišćenje datetime modula
sada = datetime.now() # Trenutni datum i vreme
print(f“Trenutni datum i vreme: {sada}“)
print(f“Trenutna godina: {sada.year}“)
3. Šta su paketi?
Kako programi rastu, moduli postaju brojni. Da bi se dodatno organizovali, moduli se grupišu u pakete.
Paket je folder (direktorijum) koji sadrži više modula (Python fajlova) i obavezno fajl __init__.py (koji može biti prazan, ali signalizira Pythonu da je to paket). Paketi mogu sadržati i pod-pakete.
Struktura paketa:
moj_projekat/
├── __init__.py
├── modul_glavni.py
├── racunanje/
│ ├── __init__.py
│ ├── aritmetika.py
│ └── statistika.py
└── obrada_teksta/
├── __init__.py
└── formatiranje.py
Kako importovati iz paketa?
Koristite . (tačku) za navigaciju kroz hijerarhiju paketa.
# Iz ‘racunanje’ paketa importujemo ‘aritmetika’ modul
from racunanje import aritmetika
# Iz ‘obrada_teksta’ paketa importujemo samo funkciju ‘formatiraj_tekst’
from obrada_teksta.formatiranje import formatiraj_tekst
# Primer:
# pretpostavimo da ‘racunanje/aritmetika.py’ ima funkciju ‘saberi’
# pretpostavimo da ‘obrada_teksta/formatiranje.py’ ima funkciju ‘formatiraj_tekst’
# print(aritmetika.saberi(5, 5))
# print(formatiraj_tekst(„zdravo!“))
(Ovo je samo ilustracija. Za pokretanje bi zahtevalo kreiranje navedene strukture foldera i fajlova.)
4. pip: Upravljanje eksternim paketima
Najveća snaga Pythona leži u njegovom ogromnom ekosistemu eksternih paketa (biblioteka) koje su razvili drugi programeri i zajednica. Ovi paketi nisu deo standardne biblioteke Pythona i morate ih instalirati.
pip je Python-ov menadžer paketa. Koristi se za instaliranje, ažuriranje i uklanjanje eksternih paketa.
Kako koristiti pip?
pip komande se izvršavaju u komandnoj liniji (terminalu), ne u Python kodu.
- Instaliranje paketa:
pip install ime_paketa
Na primer: pip install requests (za slanje HTTP zahteva), pip install numpy (za numeričke operacije). - Instaliranje specifične verzije:
pip install ime_paketa==verzija
Na primer: pip install pandas==1.3.0 - Ažuriranje paketa:
pip install –upgrade ime_paketa - Uklanjanje paketa:
pip uninstall ime_paketa - Prikaz instaliranih paketa:
pip list
Primer korišćenja eksternog paketa (requests)
requests je popularan paket za slanje HTTP zahteva (npr. preuzimanje veb stranica).
- Instalirajte requests:
Otvorite terminal (izvan VS Code-a ili unutar VS Code terminala) i ukucajte:
pip install requests - Kreirajte fajl preuzmi_stranicu.py:
# preuzmi_stranicu.py
import requests # Uvozimo instalirani paket
url = „https://www.google.com“
response = requests.get(url) # Šaljemo GET zahtev na URL
print(f“Status koda za {url}: {response.status_code}“)
if response.status_code == 200:
print(„Uspešno preuzeta stranica!“)
# print(„Prvih 200 karaktera sadržaja:“)
# print(response.text[:200]) # Ispisuje prvih 200 karaktera HTML-a
else:
print(„Došlo je do greške prilikom preuzimanja stranice.“)
Pitanja i odgovori (FAQ)
P: Koja je razlika između modula i paketa?
O: Modul je jedan Python fajl (.py). Paket je folder koji sadrži više modula i obavezno __init__.py fajl, organizujući module u hijerarhiju. Paket je u suštini kolekcija povezanih modula.
P: Zašto se koristi __init__.py fajl u paketu?
O: __init__.py fajl signalizira Pythonu da je direktorijum koji ga sadrži Python paket. On se izvršava kada se paket importuje i može se koristiti za inicijalizaciju paketa ili definisanje šta će se importovati kada se paket importuje. U novijim verzijama Pythona, može biti prazan.
P: Šta je PyPI (Python Package Index)?
O: PyPI je zvanično skladište za Python pakete trećih strana. Kada koristite pip install, pip pretražuje PyPI da bi pronašao i preuzeo traženi paket.
P: Mogu li da imam konflikte imena kada importujem module?
O: Da, ako importujete dva modula koja imaju istu funkciju/varijablu (npr. obe imaju ime_funkcije()), može doći do konflikta, pogotovo ako koristite from modul import *. Zato je bolje koristiti import modul_ime ili import modul_ime as alias kako biste jasno naznačili odakle funkcija dolazi.
P: Da li moram da instaliram pip?
O: Ne, pip dolazi automatski instaliran sa modernim verzijama Pythona (Python 3.4 i noviji).
Relevantni linkovi
- W3Schools – Python Modules (engleski): w3schools.com/python/python_modules.asp
- Real Python – Python Modules and Packages (engleski): realpython.com/python-modules-packages/
- Zvanična Python dokumentacija – Modules (engleski): docs.python.org/3/tutorial/modules.html
- PyPI (Python Package Index): pypi.org/
- pip dokumentacija (engleski): pip.pypa.io/en/stable/
Čestitamo! Sada ste naučili kako da iskoristite moć modula i paketa u Pythonu, što je ključno za izgradnju velikih i funkcionalnih aplikacija. Razumevanje pip-a otvara vam vrata ka hiljadama korisnih biblioteka koje vam mogu pomoći da brzo rešite kompleksne probleme.
Ovo je bila poslednja lekcija u našem uvodnom serijalu o Python programiranju! Nadam se da ste uživali i da ste stekli čvrste temelje za dalji rad. Šta biste želeli sledeće da istražimo?

