Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
OSNOVE PROGRAMIRANJA U PAJTONU
PREDAVANJE 7 – KOLEKCIJE: TEKST I LISTA
Miloš Kovačević
Đorđe Nedeljković
Marija Petronijević
Dušan Isailović
SADRŽAJ PREDAVANJA
- Kolekcije objekata
- Sekvence
- Tekst
- Lista
KOLEKCIJA OBJEKATA
Objekti osnovnih brojnih tipova imaju nedeljivu prirodu.
(ne mogu se podeliti na delove koji sami po sebi imaju smisla)
Često treba sačuvati informacije koje se odnose na istu osobinu različitih entiteta.
ocene iz matematike za sve studente
... ili informacije koje se odnose na pojavu koja se posmatra u vremenu.
prosečna ocena studenta, posle svake godine studiranja
Kolekcija objekata - grupiše srodne podatke unutar jedinstvene celine.
Ona mogućava njihovu obradu na pojedinačnom i zbirnom nivou.
Kolekcija objekata realizovana je kao objekat (odgovarajućeg tipa)
KOLEKCIJA OBJEKATA
Kolekcija zapravo ne sadrži objekte, već objektne reference!
objektna referenca (adresa objekta u memoriji)
Imaćemo u vidu objektne reference, ali ćemo govoriti da su „objekti u kolekciji“.
Objekti u kolekciji nazivaju se elementi kolekcije.
SEKVENCE
Sekvenca je uređena kolekcija – podrazumeva postojanje redosleda objekata.
Sekvencama se pristupa preko indeksa pozicije.
Broj elemenata ili dužina sekvence određuje se preko funkcije len().
TEKSTUALNE SEKVENCE – TIP str
Konstruktor klase String (funkcija koja pravi objekte iz klase)
TEKST – PRISTUPANJE KARAKTERIMA
Indeks van opsega – greška (izostavljeno)
Jednoelementni tekst – karakter memorisan prema Unicode standardu.Svakom karakteru, po Unicode-u, odgovara jednistveni broj (UCP):
PRISTUPANJE KARAKTERIMA
foreach petlja(za svaki element u sekvenci, radi …)
Očigledno, range je sekvenca!
POREĐENJE TEKSTA. LEKSIKOGRAFSKI POREDAK
poređenje se vrši karakter po karakter( porede se ord(x) i ord(y) )
poređenje po leksikografskom poretku(kao u rečniku)
PODTEKST, SPAJANJE, MULTIPLIKACIJA
Operator in proverava pripadnost elementa (tekstualnoj) sekvenci.
Operatori + (spajanje) i * (multiplikacija) ponašaju se drugačije nego sa brojevima.(preopterećenje operatora)
NEPROMENLJIVOST TEKSTA
Slično brojnim tipovima i tekstualni objekti su nepromenljivi!
IZDVAJANJE PODTEKSTA
Ideja za iterativni postupak:
PALINDROM – REKURZIVNO REŠENJE
Tekst t je palindrom ako važi:
t[0] == t[-1] i t[1: -1] je palindrom (rekurzija)
Šta fali da bi rekurzija mogla da se primeni?
Bazni slučaj: prazan tekst je palindrom!
PALINDROM
PALINDROM – TEST PROGRAM
Kako se generišu svi podtekstovi nekog teksta?
Prvo se izabere dužina podteksta, a se onda generišu svi podtekstovi date dužine.
OBJEKTI I METODE
Funkcija – imenovani niz naredbi za obavljanje odgovarajuće funkcionalnosti.
nije vezana ni za jedan konkretni objekat.
Ulazni parametri utiču na rezultat rada, ali funkcija postoji nezavisno od njih!
U objektno orijentisanim jezicima, tip (klasa) objekta određuješta se sve može raditi nad objektom – klasa definiše ponašanje.
Metode – funkcije definisane unutar klase i koje se vezuju za konkretan objekat.
Pozivaju se nad objektom u notaciji sa tačkom: ime_objekta.ime_metode(...)
Posmatra se klasa Auto – definiše automobile kao objekte. Šta je prirodnije:
start(perin_golf), start(tatin_krš)
ili
perin_golf.start(), tatin_krš.start()
TEKSTMETODE
LISTE – TIP list
Lista – sekvenca objekata proizvoljnih tipova.
Promenljiv objektni tip: mogu se brisati stari, ili dodavati novi elementi.
Prave se uz pomoć uglastih zagrada – [ ], ili uz pomoć list() konstruktora:
može u više redova!
UNUTRAŠNJE LISTE. INDEKSIRANJE.
Liste sadrže reference na objekte!
unutrašnjalista
Pristup preko indeksa. Prvi element ima indeks 0 (kao i kod teksta)!
IZDVAJANJE
PODLISTI
Prilikom izdvajanja (kopiranja)
kreira se nova lista!
Prilikom (izdvajanja) kopiranja, kopiraju se objektne reference, a ne objekti!
AŽURIRANJE LISTE
Liste su promenljivi objekti
Metod iz klase list
del – ni metod, ni funkcija već operator