PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević...

Preview:

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

Recommended