Kreirano 2024-09-30 Mon 13:44, pritisni ESC za mapu, m za meni, Ctrl+Shift+F za pretragu
Instalirajte proizvoljan editor koji podržava Python. Npr. PyCharm ili VS Code.
Virtuelna Python okruženja služe za izolaciju instaliranih biblioteka po projektu.
Upotrebom venv modula kreirati i aktivirati virtualeno Python okruženje.
Testirati instalacijom biblioteke textX sa PyPI:
python -m venv venv # Po završetku ispitati sadržaj kreiranog venv foldera source venv/bin/activate # Na Windowsu venv\Scripts\activate.bat pip install textx[cli]
Testirati da li je textX instaliran pozivom:
textx version
pip omogućava instalaciju u razvojnom modu što je zgodno kada želimo da
pratimo najsvežiju verziju iz nekog git repozitorijuma (npr. sa GitHub-a).
Klonirajte neki repozitorijum i instalirajte ga u tzv. editable modu za razvoj:
git clone git@github.com:pyflies/pyflies.git pip install -e pyflies pip list
Sa komandom pip list videćete da se kodu ovog paketa pristupa direktno iz
kloniranog git repozitorijuma. Sada je moguće ažurirati paket upotrebom git-a:
cd pyflies git pull
Napisati funkciju koja transformiše listu reči u listu gde svaki element predstavlja broj samoglasnika iz originalne liste.
Napisati funkciju koja kreira akronim (prva slova svake reči, kao velika slova)
od zadate rečenice. Na primer: Fakultet tehničkih nauka -> FTN.
Dat vam je tekstualni CSV fajl čije linije su oblika:
<reč>, <broj>
Na primer:
jabuka, 120 programiranje, 450 ...
Napraviti funkciju koja za zadatu putanju do fajla vraća rečnik (dict) gde će
ključevi biti reči a vrednosti odgovarajući brojevi iz datog fajla.
Kreirati klase Product sa atributima:
name - naziv proizvoda,price - jedinična cena proizvoda,discount - trenutno aktivan popust na cenu u procentima (npr. vrednost 10
znači 10% popusta). Podrazumevana vrednost je 0.
i klasu Stock sa atributima products koji će biti lista instanci klase
ProductAmount. Klasa ProductAmount ima sledeće atribute:
product - referenca na instancu Productamount - količina na lageru
Kreirati property discount_price nad klasom Product koji će da vraća
vrednost sa uračunatim popustom.
Kreirati property total_value i total_discount_value nad klasom Stock
koji vraća ukupnu vrednost lagera proizvoda bez i sa uračunatim popustom.
Napisati kod koji testira implementaciju.
Sortirati proizvode na lageru iz prethodnog zadatka po ceni:
sort i keysort i definisanjem specijalnih metoda za poređenje u klasi
Product
Kreirati klasu Point sa atributima x i y. Omogućiti sabiranje instanci ove
klase. Takođe, omogućiti poređenje tačaka po jednakosti.
Operacija + treba da vrati novu tačku sa koordinatama koje predstavljaju
zbir odgovarajućih koorinata operanada. Odnosno:
a = Point(2, 4)
b = Point(3, 4)
assert a + b is not a
assert a + b == Point(5, 8)
Takođe implementirati sabiranje “u mestu” (operator +=) gde će rezultat izmeniti
prvi operand, tj. obaviće translaciju za vrednost drugog operanda. Odnosno:
a = Point(2, 4)
x = a
b = Point(3, 4)
a += b
assert a == Point(5, 8)
assert a is x
Napisati test gde će lista tačaka biti translirana za isti vektor.
Proširiti prethodni zadatak uvođenjem klase Line koja sadrži dve tačke. Takođe
omogućiti sabiranje sa tačkom (translaciju) sa operatorima + i +=.
Napisati test gde će lista koja sadrži i tačke i duži biti translirana za isti vektor. Prolazak kroz listu i translacija treba da se obavi kodom koji ne proverava tip elementa.
Napisati funkciju za konverziju iz rimskog brojnog sistema u arapski i obrnuto.
Kreirati projektnu strukturu tako da je moguća jednostavna instalacija vašeg
paketa u bilo koje virtuelno Python okruženje upotrebom pip alata. Videti na
prethodnom slajdu. Potrebno je da vaš projekat poseduje setup.py i setup.cfg
fajl. Ugledati se na druge Python projekte (npr. textX).
Omogućiti poziv konverzije sa komandne linije (CLI).
Napomena: Rešenje za Python postoji u vidu paketa roman. Probati uraditi
samostalno. Uporediti svoje rešenje sa roman paketom.