22
OSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7 – KOLEKCIJE: TEKST I LISTA Miloš Kovačević Đorđe Nedeljković Marija Petronijević Dušan Isailović

PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

OSNOVE PROGRAMIRANJA U PAJTONU

PREDAVANJE 7 – KOLEKCIJE: TEKST I LISTA

Miloš Kovačević

Đorđe Nedeljković

Marija Petronijević

Dušan Isailović

Page 2: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

SADRŽAJ PREDAVANJA

- Kolekcije objekata

- Sekvence

- Tekst

- Lista

Page 3: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

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)

Page 4: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

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.

Page 5: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

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().

Page 6: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

TEKSTUALNE SEKVENCE – TIP str

Konstruktor klase String (funkcija koja pravi objekte iz klase)

Page 7: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

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):

Page 8: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

PRISTUPANJE KARAKTERIMA

foreach petlja(za svaki element u sekvenci, radi …)

Očigledno, range je sekvenca!

Page 9: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

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)

Page 10: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

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)

Page 11: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

NEPROMENLJIVOST TEKSTA

Slično brojnim tipovima i tekstualni objekti su nepromenljivi!

Page 12: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

IZDVAJANJE PODTEKSTA

Page 13: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

Ideja za iterativni postupak:

Page 14: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

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!

Page 15: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

PALINDROM

Page 16: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

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.

Page 17: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

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()

Page 18: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

TEKSTMETODE

Page 19: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

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!

Page 20: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

UNUTRAŠNJE LISTE. INDEKSIRANJE.

Liste sadrže reference na objekte!

unutrašnjalista

Pristup preko indeksa. Prvi element ima indeks 0 (kao i kod teksta)!

Page 21: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

IZDVAJANJE

PODLISTI

Prilikom izdvajanja (kopiranja)

kreira se nova lista!

Prilikom (izdvajanja) kopiranja, kopiraju se objektne reference, a ne objekti!

Page 22: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTAOSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović

AŽURIRANJE LISTE

Liste su promenljivi objekti

Metod iz klase list

del – ni metod, ni funkcija već operator