PP1/Pitalice
Na sledećoj stranici sakupljene su pitalice sa testova pred laboratorijske vežbe. Nisu navedene ni u jednom konkretnom redosledu, i slične pitalice mogu biti spojene.
- Za pitanja sa više odgovora, tačni odgovori su podebljani i uokvireni
- Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni, tako da se prikažu kada izaberete taj tekst (primer: ovako)
- Pritisnite levo dugme ispod za sakrivanje i otkrivanje svih odgovora, ili desno dugme za uključivanje i isključivanje interaktivnog režima:
2. laboratorijska vežba
1. pitanje
Spojiti oblike numeričkih literala sa odgovarajućim tipovima podataka na programskom jeziku Python:
0b11101
: intj2.0
: greška0oF117
: greška0x123
: int-1.E-2j
: complex.9969e3
: float0d112
: greška0o1812
: greška0xabc
: int
2. pitanje
Šta ispisuje sledeći fragment koda na programskom jeziku Python?
j = 5.0
x = 0
while j > 1:
j //= 2
x += 1
else:
x += 1
print(x)
Rešenje: 3
Objašnjenje: U prvoj iteraciji petlje j
će se smanjiti na 2 (5 podeljeno sa 2 zaokruženo na niži broj) a u drugoj na 1 (2 podeljeno sa 2), i zatim će se izvršiti deo koda u else
.
3. pitanje
Koja su tvrđenja tačna u vezi sa tipovima na programskom jeziku Python?
- Promenljiva se ne može promeniti nakon prve dodele vrednosti.
- Specijalna vrednost
None
označava da promenljiva nema vrednost, ali je definisana. - Imena identifikatora se mogu sastojati samo od velikih i malih slova i znaka
_
, ali ne smeju počinjati znakom_
. - Uništavanje promenljivih se obavlja dinamički ili upotrebom naredbe
del
. - Tip podataka precizira skup vrednosti i operacija koje se mogu primeniti na neki objekat.
- Rezervisane reči smeju biti korišćene kao imena identifikatora, ali se onda ne mogu koristiti odgovarajuće konstrukcije.
4. pitanje
U kojim od navedenih izraza na programskom jeziku Python, nakon izračunavanja promenljiva x
ima vrednost False
?
x=not 21 and 8!=3
x=86>=86>87
x=not True or False and True
x=not((not 0)==(not 3))
x=bool("False")
x=bool(-1)
5. pitanje
Koja su tvrđenja tačna za navedene funkcije, naredbe i kontrolne strukture na programskom jeziku Python?
- Naredba
continue
prekida izvršavanje tekuće iteracije petlje i prelazi na sledeću. - Grana
else
se kod petlji izvršava samo ukoliko se petlja regularno završi. - Ukoliko se telo
for
petlje sastoji od više naredbi, one moraju biti podjednako uvučene u odnosu na ključnu rečfor
. while
petlja može da se direktno koristi za iteriranje kroz kolekcije.- Ukoliko postoji
elif
grana kodif
uslovnog grananja, onda obavezno mora postojati ielse
grana.
6. pitanje
Spojiti opise funkcija sa imenima funkcija koje se koriste za rad sa listama u programskom jeziku Python.
- Dodavanje elementa na zadatu poziciju:
insert()
- Dohvatanje dužine liste:
len()
- Uklanjanje člana po vrednosti:
remove()
- Dodavanje pojedinačnih elemenata na kraj liste:
append()
- Inicijalizacija liste:
list()
- Uklanjanje člana sa zadate pozicije:
pop()
7. pitanje
Koja su tvrđenja tačna za navedene funkcije, naredbe i kontrolne strukture na programskom jeziku Python?
- Funkcija
range(n)
generiše sekvencu vrednosti u opsegu od 1 don
. - Naredba
break
nasilno prekida telo petlje na mestu na kome je izvršena. while
petlja ponavlja blok naredbi dok god je zadati logički uslov ispunjen.- Uslovno grananje sa
if
uvek mora da poseduje odgovarajućuelse
granu. - Naredba
pass
se koristi za napuštanje bloka koda na mestu na kome je pozvana.
8. pitanje
Koji uslovni izraz odgovara izvršavanju sledećeg koda na programskom jeziku Python?
if a % 2 == 0:
b = c
else:
b = d
Odgovor: b = c if a % 2 == 0 else d
3. laboratorijska vežba
1. pitanje
Koja tvrđenja su tačna u vezi rada sa funkcijama na programskom jeziku Python?
- Funkcije ne mogu imati podrazumevane vrednosti argumenata.
- Argument funkcije može biti druga funkcija.
- Dozvoljeno je definisati funkciju u okviru druge funkcije.
- Argumenti funkcije se na programskom jeziku Python prenose isključivo po referenci.
- Funkcija može u okviru svog tela sadržati samo jednu
return
naredbu.
2. pitanje
Koja su tvrđenja tačna na programskom jeziku Python u vezi sa prostorima imena i opsegom važenja promenljivih?
- Rekurzivna funkcija je funkcija koja poziva samu sebe.
- Pri pozivu svake funkcije kreira se lokalni prostor imena te funkcije.
- Kada se program pokrene kreira se globalni prostor programa.
- Za dohvatanje promenljive koja se nalazi u okružujućoj funkciji iz unutrašnje funkcije koristi se ključna reč
local
. - Ako u funkciji Fx nije definisana promenljiva foo, nije neophodno koristiti ključnu reč
global
kako bi izmenili vrednost globalne promenljive foo u funkciji Fx.
3. pitanje
Koja su tvrđenja tačna na programskom jeziku Python u vezi prostora imena i opsega važenja promenljivih?
- Isto ime može postojati u više prostora imena.
- Definicija promenljive u funkciji sakriva vidiljivost globalne promenljive sa istim imenom.
- Globalnoj promenljivoj može se pristupati iz svih funkcija.
- Python ne dozvoljava da se funkcija definiše unutar druge funkcije.
- Globalnoj promenljivoj može se pristupati samo korišćenjem ključne reči
global
.
4. pitanje
Koja tvrđenja su tačna u vezi rada sa funkcijama na programskom jeziku Python?
- Blok koji sadrži naredbe u okviru tela funkcije započinje znakom : (dvotačka).
- Funkcija može imati promenljiv broj parametara.
- Nakon deklaracije funkcije se opciono navodi dokumentacioni string.
- Funkcijski blok obavezno počinje rezervisanom reči
var
. - Ukoliko funkcija ne vraća vrednost naredba
return
mora obavezno vratiti vrednostNone
.
5. pitanje
Neka se posmatra sledeći deo koda na programskom jeziku Python:
def funkcijap (a, b, c):
a += 10
b[0] = a
b[1:] = b[:0:-1]
c += "str"
return
a = 1
b = 3 * [1, 2]
c = "a"
funkcijap (a, b, c)
Za svaku od navedenih promenljivih, ispravno definisati da li će promena stvarnog argumenta u potprogramu biti vidljiva u glavnom programu.
b
: promenjenaa
: nepromenjenac
: nepromenjena
6. pitanje
Neka se posmatra sledeća funkcija koda na programskom jeziku Python:
def poruka (i, k = 0, tip = "i"):
p = i if tip == "i" else k*0.3 + i*0.7
return "polozio" if p > 50 else "pao"
Koji su sve pozivi funkcije korektni?
poruka (tip="k", i = 50, k = 20)
poruka (90)
poruka (tip="k", k = 20)
poruka ()
poruka (20, tip="k")
poruka (tip="i", k = 20, i = 70)
poruka (tip="k", 20, 70)
poruka (50, 20)
poruka (tip="i", 20, i = 70)
poruka (tip="i")
7. pitanje
Neka se posmatra sledeća funkcija koda na programskom jeziku Python:
def povrsina (a = 0, b = 0, c = 0):
if a and b and c:
s = (a + b + c) / 2
return (s*(s-a)*(s-b)*(s-c))**0.5
elif a and b:
return a * b
elif a:
return a * a
else:
return 0
Koji su sve pozivi funkcije korektni?
Izaberite jedan ili više odgovora:
povrsina (a = 5, c = 6, 10)
povrsina (b = 6)
povrsina (20, c = 16)
povrsina (5, 6, 7)
povrsina (a = 4, c = 5, 8)
4. laboratorijska vežba
1. pitanje
Kada se metodi format
zada željena širina polja pri ispisu, sadržaj se (podrazumevano) uravnava:
- uz levu ivicu, bez obzira na tip podataka koji se ispisuje
- uz levu ivicu, ako se ispisuju numerički podaci
- uz levu ivicu, ako se ispisuju tekstualni podaci
2. pitanje
Koje su sve operacije nad stringovima dozvoljene od ponuđenih, ukoliko su zadate sledeće deklaracije:
s1 = "trla baba lan"
s2 = "da joj prođe 5. dan"
i = 5
s3 = i in s2
s3 = s1[i] in s2
s3 = s1[:4] in s2[7:]
s1[3:5] = s2[7:9]
(s1+s2)[2]
3. pitanje
- Ovaj zadatak nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.
Koja tvrđenja su tačna prilikom poziva sledeće funkcije format
? U promenljivoj str
se nalazi tekstualna vrednost.
"{:x,y}".format(str)
- 'y' predstavlja minimalan broj mesta za ispisivanje promenljive
str
- 'x' predstavlja minimalan broj mesta za ispisivanje promenljive
str
- 'y' predstavlja maksimalan broj mesta za ispisivanje promenljive
str
- 'x' predstavlja maksimalan broj mesta za ispisivanje promenljive
str
5. laboratorijska vežba
1. pitanje
Koja tvrđenja su tačna u vezi rada sa torkama na programskom jeziku Python?
- Torka predstavlja uređenu i promenljivu kolekciju podataka.
- Torka može da sadrži elemente različitog tipa.
- Objekat prazne torke može se formirati korišćenjem funkcije
tuple()
, kao i notacijom()
. - Svaki element torke u torki se pojavljuje samo jedanput (nema duplih elemenata).
- Moguće je iterirati (vršiti obilazak kolekcije) kroz objekat torke.
2. pitanje
Koja tvrđenja su tačna u vezi rada sa izuzecima na programskom jeziku Python?
- Blok
finally
se izvršava bez obzira da li je kod unutartry
bloka generisao izuzetak ili ne. - Moguće je uhvatiti jedan ili više tipova izuzetaka u
except
bloku. - Blok
finally
se izvršava bez obzira da li je kod unutarexcept
bloka generisao izuzetak ili ne. - Izuzetak se može generisati isključivo upotrebom naredbe
raise
. - Blok
else
se izvršava bez obzira da li je kod unutartry
bloka generisao izuzetak ili ne. - Blok
except
može biti deklarisan da hvata jedan ili više tipova objekata izuzetaka. - Jednu
try
naredbu može pratiti jedan ili više imenovanihexcept
blokova. - Može se napisati naredba
try
koju ne prati nijedanexcept
ilifinally
blok. - Ukoliko
try
naredbu pratiexcept
blok onda je ne može pratiti ifinally
blok. - Jednu
try
naredbu može pratiti najviše jedanfinally
blok.
3. pitanje
Spojiti odgovarajuće režime otvaranja datoteka na programskom jeziku Python koji se zadaju funkciji open()
sa navedenim opisima.
- Upis u tekstualnu datoteku ukoliko prethodno ne postoji: x
- Čitanje tekstualne datoteke: r
- Upis u binarnu datoteku: wb
- Čitanje binarne datoteke: rb
- Upis u tekstualnu datoteku: w
- Dodavanje na kraj tekstualne datoteke: a
4. pitanje
Spojiti odgovarajuće opise standardnih izuzetaka sa imenima tipova standardnih izuzetaka na programskom jeziku Python.
- Baca se kada ulazno-izlazna operacija ne uspe, kao što je otvaranje datoteke koja ne postoji. IOError
- Baca se kada se nekorektan indeks (indeks van opsega) upotrebi za pristup sekvenci. IndexError
- Baca se kada identifikator ne može da se pronađe u lokalnom ili globalnom prostoru imena. NameError
5. pitanje
Koja tvrđenja su tačna u vezi rada sa skupovima na programskom jeziku Python?
- Skup se može formirati zadavanjem liste ili string-a kao argumenta funkcije
set
. - Svaki element skupa u skupu se pojavljuje samo jedanput(nema duplih elemenata).
- Objekat praznog skupa može se formirati korišćenjem funkcije
set()
, kao i notacijom()
. - Skup predstavlja uređenu i nepromenljivu kolekciju podataka.
- Moguće je iterirati (vršiti obilazak kolekcije) kroz objekat skupa.
6. pitanje
Šta sve može biti element objekta skupa na programskom jeziku Python?
- Literal tipa
int
(npr. 153). - Objekat tipa liste (npr. [1, 2, 3]).
- Literal tipa
str
(npr. 'tekst'). - Objekat tipa skupa (npr. set(1, 2, 3)).
- Objekat tipa torke (npr. (1, 2, 3)).
7. pitanje
Spojiti izraze sa operatorima definisane za skupove sa ekvivalentnim izrazima sa metodama definisanim za skupove za objekte a i b na programskom jeziku Python.
a & b
: a.intersection(b)a <= b
: a.issubset(b)a | b
: a.union(b)a - b
: a.difference(b)a >= b
: a.issuperset(b)a |= b
: a.update(b)a ^ b
: a.symmetric_difference(b)
8. pitanje
Neka su date sledeće deklaracije na programskom jeziku Python:
arr = [1, 20, 8, 4, 41, 5]
msg = "Happy New Year"
year = "2o20"
name = "input.txt"
Smatrati da datoteka input.txt ne postoji na disku. Ispravno spojiti greške (izuzetke) i naredbe koje ih generišu.
IndexError
: msg[25]NameError
: open(filename,"r")ValueError
: int(year)IndexError
: arr[6]TypeError
: msg[6] = 'y'FileNotFoundError
: open(filename,"r")
9. pitanje
Neka su date sledeće deklaracije na programskom jeziku Python:
f = open("test.txt")
Neka je sadržaj datoteke test.txt sledeći:
Quick brown fox
jumps
over a lazy
dog.
- Šta kao rezultat vraća poziv funkcije rez = f.read(1)?
- Prazan red: "\n"
- Sadržaj cele datoteke:"Quick brown fox jumps over a lazy dog."
- Prvo slovo u datoteci:"Q"
- Sadržaj cele datoteke:"Quick brown fox\n\njumps\nover a lazy\ndog."
- Prvu liniju datoteke:"Quick brown fox\n"
- Prvu reč u datoteci:"Quick"
- Šta kao rezultat vraća poziv funkcije rez = f.readline()?
- Prazan red: "\n"
- Sadržaj cele datoteke:"Quick brown fox jumps over a lazy dog."
- Prvo slovo u datoteci:"Q"
- Sadržaj cele datoteke:"Quick brown fox\n\njumps\nover a lazy\ndog."
- Prvu liniju datoteke:"Quick brown fox\n"
- Prvu reč u datoteci:"Quick"
- Šta kao rezultat vraća poziv funkcije rez = f.read()?
- Prazan red: "\n"
- Sadržaj cele datoteke:"Quick brown fox jumps over a lazy dog."
- Prvo slovo u datoteci:"Q"
- Sadržaj cele datoteke:"Quick brown fox\n\njumps\nover a lazy\ndog."
- Prvu liniju datoteke:"Quick brown fox\n"
- Prvu reč u datoteci:"Quick"
10. pitanje
Koji od ponuđenih delova koda na programskom jeziku Python uredno zatvara datoteku nakon sprovedenog čitanja ili upisa?Smatrati da datooteke postoje na disku.
Izaberite jedan ili više odgovora:
with open('upis.txt', 'w') as f: f.write("Happy New Year!\n")
fx = open("test.txt") fx.readline() fx.seek(0,2)
fi = open("test.txt") fi.readline() fi.closed()
fa = open("test.txt") res = fa.read() fa.close()