Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

SKRIPT JEZICI

USMENI ISPIT
2023
PRVI DEO
1 - Tipovi podataka u Pythonu
Python ima ugrađene tipove podataka:
1) primitivni tipovi (int, float, None, bool)
2) kolekcije (recinici i liste)
3) složeni tipovi (kombinacija prostih)
int – celobrojna promenljiva (bez decimale), pozitivni i negativni brojevi. Konstruktor int()
castuje u ceo broj. Operacije nad int vraćaju int (osim /).
float – decimalna promenljiva, svi brojevi koji sadrže decimalu ili slovo e. Konstruktor float()
castuje u specijalne vrednosti (NaN, inf, -inf). Operacije nad float vraćaju float.
none – posebna nula, odsustvo vrednosti.
bool – logičke vrednosti true i false, obično su rezultat logičkih operacija.
str – Tekst, može se računati kao izraz preko eval(str).

2. Tip podataka str


String je nepromenljiva sekvenca karaktera (koji su sami po sebi string duzine jedan). Duzina
stringa se može proveriti komandom len(str).
Moguće ga je konkatenirati operatorom +, alternativna metoda je join koja prima string i pravi
novi ubacivanjem separatora između svakog sledećeg. Primer: “|”.join(str1, str2).
Metod “str”.split() deli string na podstringove u odnosu na separator.
String je moguće višestruko ponoviti operatorom *.
Pristup pojedinacnim znakovima str[broj] ili nizu znakova str[start:end]. Prolazak kroz znakove
for i in string.

3. Formatiranje stringova/izlaza
Poziva se za string koji sadrži zamenska polja u {} zagradama. Primer: “Ovo je {0} prvi
{1}!“.format(“naš“, “program“), pri čemu se polja mogu ponavljati. Poravnjanje je desno za
numericke znakove i levo za stringove, ukoliko se drugacije ne navede.
4. Fajlovi
Fajl – skup podataka sačuvanih na disku, sadrže bilo koji tip podataka.
Najlakši je rad sa tekstualnim fajlom, takvi fajlovi obično čuvaju više redova teksta od kojih se
svaki završava sa line feed karakterom („\n“).
Otvaranje fajla povezuje fajl sa objektom u memoriji koji omogućuje menjanje fajla (upis i
čitanje). Po završetku rada potrebno je zatvoriti fajl (snimanje fajla, pražnjenje buffera, itd.), u
suprotnom može doći do gubtika podataka.
Otvaranje fajla: fajl = open(ime, mod). Mod je opcioni parametar (r-read, w-write i a-append).
Pri otvaranju fajla može se navesti i encoding stanje, python razlikuje dva encoding stanja,
binarni (bez encodinga) i tekstualni (encoding, po defaultu UTF-8, prepoznaje \n).
Operacije:
file.read() – čita preostali sadržaj fajla.
file.readLine() – čita sledeću liniju u fajlu
file.readLines() – čita sve preostale linije u fajlu.

5. Lista
Lista (niz) je skup vrednosti, gde se ceo skup čuva kao jedan objekat u [] i ima svoje ime (npr. L),
a elementima se pristupa preko indeksa (npr. L[ i ]). Liste su promenljive duzine, heterogene i
sadržaj im se može menjati.
Operacije nad listama: konkatenacija, ponavljanje, indeksiranje, len(list), isecanje list[:], iteracija
for i in list, postojanje elementa <element> in list, dodavanje elementa x na kraj list.append(x),
list.sort(), list.reverse(), index elementa x list.index(x), ubacivanje elementa x na index i
list.insert(i, x), prebrojavanje list.count(x), uklanjanje elementa list.remove(x), izbaci i-ti element
i vrati vrednost list.pop(i), brisanje u opsegu del list[:]
6. Torke (Tuples)
Torka je skup nepromenljive dužine, heterogen, objekti se ne mogu ukloniti ili biti zamenjeni
drugim, niti se mogu dodavati. Podaci se čuvaju u () i razdvojeni su zarezima. Moguće su i
ugnježdene torke. Konstruktor tuple() kreira torku iz postojećih tipova podataka (liste, stringa).

Skup (set) je neuređena kolekcija nepromenljivih i neindeksiranih objekata. Elementi se mogu


dodavati i brisati iz skupa, ali su unutar njega nepromenljivi. Kreira se konstruktorom set(), ne
sadrži duplikate. Proveru pripadnosti možemo odraditi preko in i not in operatora. Funkcija add
dodaje element, ukoliko već postoji ignoriše. Funkcija update dodaje bilo koju iterabilnu
strukturu. Izbacivanje se vrši preko remove i discard funkcija. Operacije: s.union, s.intersection,
s.difference, s.symmetric_difference, s.issubset, s.issuperset.

7. Rečnici
Rečnik čuva parove ključ:vrednost i oni se mogu menjati. Ključ je bilo koji ne promenljivi tip
(broj, string), a vrednost može biti bilo kog tipa. Rečnici se često koriste u Pythonu, efikasnisu i
mogu primiti na hiljade elemenata. Rečnik može biti prazan {}, a za dodavanje elemenata koristi
se neki postojeći ključ ili se kreira novi. Rečnik se može učitati iz fajla. Operacije: <key> in <dict>
vraća True ukoliko ključ postoji, lista ključeva/vrednosti se dobija <dict>.keys()/values(). Brisanje
elemenata del dict[<key>], a brisanje svih elemenata <dict>.clear(). Proširivanje rečnika
dict.update.

8. Grananje
Naredba if proverava uslov i ukoliko je vrednost True izvršava zadatak. Naredba else izvršava
zadatak ukoliko je vrednost False, ali ne mora da bude zadata. Moguće je i višestruko grananje
pomoću elif, kao i ugnježdavanje, ali je preporučljivo koristiti elif. Uslovi mogu biti prosti ili
složeni logički izrazi (not, or, and).
9. Petlje
For – petlja sa konačnim brojem ponavljanja (primer: for i in range(11):).
While – Uslovnja petlja, ponavlja se dok je ispunjen uslov (0, 1 ili više puta). Kod ove petlje
moramo sami da održavamo indeks, deklarišemo na početku i ručno povećavamo, zbog čega je
ona moćnija, ali može da izazove greške. Beskonačna while petlja može se koristiti za pisanje
interaktivnijih programa, gde korisnik odlučuje o završetku petlje.
Sentinel petlja – Primer: brojanje unešenih celih brojeva, unos negativnog za završetak.
Petlje sa uslovom na dnu: repeat <telo> until number > 0, nisu implementirane u Pythonu, ali se
mogu simulirati pomoću while i breaka. Petlja i po-petlja sa break naredbom u sredini tela
petlje.
DRUGI DEO
1 – Objekti i klase
Klase služe da napravimo nov tip podataka, i nove metode koje se koriste za rad nad tim
podacima. Pomoću klasa pravimo objekte sa sličnim osobinama i funkcijama koje se mogu
primeniti na njih. Klasa se definiše kao class Ime (object):
Objekat je primer nečega, napravljen po uzoru na klasu. Klasa je šablon po kojem se prave
objekti.
Primer:
Class Primer:

Def __init__(self,a,b):

Self.a = a
Self.b = b

Def add(self):

Return self.a + self.b

Def sub(self):

Return self.a – self.b

P = Primer(10, 6)
Print(p.add())
Print(p.sub())

2 – Lambda funkcije
Lambda je mala funkcija koje se definiše ključnom rečju lambda bez imena. Ona prima
proizvoljan broj argumenata, ali sadrži samo jedan izraz koji se izvršava i vraća rezultat. Primer x
= lambda a: a + 10 (rezultat za x (5) je 15). Ove funkcije se koriste 1) kada nam je potrebna
odredjena anonimna funkcija na kratko vreme 2) kada se zahteva funkcija kao objekat 3) za
sortiranje kolekcija
x = lambda a: a + 5
print(x(5))

lst = list(map(lambda a: a + 5, range(5, 11)))


print(lst)

lst = list(map(lambda a: a * 5, lst))


print(lst)
3 – Funkcije
Funkcijama se izbegava ponavljanje istog koda, poboljšava čitljivost i olakšava održavanje. Nizu
naredbi se dodeljuje ime, a kasnije se taj niz izvršava pozivom imena.

5 – Modularnost
Modularnost omogućava pisanje posebnih delova koda koji se mogu ponovo koristiti. Primer
ovoga su funkcije. Kolekcije funkcija grupisane su u module i one se mogu koristiti iz drugih
modula.

6 – Izuzeci
Kod provere grešaka umeso if izraza, može se koristiti mehanizam obrade izuzetaka čija je
osnovna ideja: „izvrši naredbu ovako, a ako se desi problem obradi ga ovako“. Izuzetak izaziva
prekid i sadrži informacije o mestu i razlogu prekida, pa pomaže pri obradi grešaka, tako što se
dobije ime greške.
Moguće greške: NameError (indentifikator umesto broja), TypeError (neispravan izraz),
SyntaxError (greška u sintaksi), ValueError (nedovoljno unetih vrednosti). Moguće je dodati i
opšti izuzetak koji pokriva sve ostale nepokrivene greške. Na kraju se može dodati finally koji će
uvek biti izvršen.
def convert(s):
try:

output = int(s)

except ValueError:

print("Nije uneta brojna vrednost.")


output = -1

finally:

print("Kraj programa.")
return output

7 – Comprehesions
Comprehensions u bukvalnom prevodu znači shvatanje, u programu to znači „uradi ovo za ovu
kolekciju u ovom slučaju“. U suštini oni skraćuju sintaksu u odnosu na petlju kako bi bila
preglednija, ali ukoliko se pretera u korišćenju može biti teška za čitanje.
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if "a" in x]
print(newlist)
8 – Generatori
Generatori su specijalan tip funkcije koja vraća lenji iterator. Lenji iterator ne zadržava podatke
u memoriji.

9 – Grafici
Grafici se crtaju bibliotekom matplotlib, a omogućeni su linijski, tačkasti, pitasti, stubičasti
gracifi i histogrami. Najčešće korišćeni modul je pyplot.
Import matplotlib.pyplot as plt
plt.plot([1,2,3,4,5],[1,4,9,16,25])
plt.xlabel(’prirodni brojevi’)
plt.ylabel(’kvadrati brojeva’)
plt.show()

You might also like