![Page 1: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/1.jpg)
PYTHON PROGRAMSKI JEZIKdr SLAVIMIR STOŠOVIĆ, dipl. inž. el.
1
![Page 2: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/2.jpg)
SADRŽAJ
Šta je Python…?
Razlike između programskog i skript jezika
Istorijat Python programskog jezika
Šta mogu da učinim sa Python programskim jezikom?
Ko i zašto danas koristi Python?
Instaliranje Python IDE-a
Prvi primer
Izvršavanje Python koda
Pokretanje Python programskog koda
Python osnove
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
2
![Page 3: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/3.jpg)
ŠTA JE PYTHON
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
3
Python je programski jezik opšte namene koji se često primenjuje u pisanju raznih
skripti posebne namene.
Dakle, Python je programski jezik kao i skriptni jezik.
Python se takođe naziva i interpretirani jezik
![Page 4: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/4.jpg)
RAZLIKE PROGRAMSKI I SKRIPT JEZICI
PROGRAMSKI JEZIK
Program se izvršava - tj. izvor se prvo
kompajliraa i rezultat kompajliranja se
pokreće a odredišnom računaru
Program predstavlja niz uputstava
napisanih tako da računar može da
izvrši određeni zadatak.
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
4
SKRIPTNI JEZIK
Skript se ne izvršava već se
interpretira (tumači)
Skript predstavlja kod napisan na
skriptnom jeziku.
Skriptni jezik nije ništa drugo do
vrsta programskog jezika na koji
možemo napisati kod za kontrolu još
jedne softverske aplikacije.
![Page 5: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/5.jpg)
PYTHON ISTORIJAT
Izumeo ga je u Holandiji, početkom 90-ih, Guido van Rossum
Pithon je zamišljen krajem 1980-ih, ali je njegova primena započeta tek u decembru
1989. godine
Guido Van Rossum je bio obožavatelj filma 'Leteć ́i cirkus Monti Python’
Od početka je open source kocnept
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
5
![Page 6: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/6.jpg)
PYTHON ISTORIJAT
“Python is an experiment in how much freedom programmers
need. Too much freedom and nobody can read another's code;
too little and expressiveness is endangered.”
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
6
„Pithon je eksperiment u tome koliko programerima slobode
treba. Previše slobode i niko ne može pročitati tuđi kod;
premalo i kreativnost izražavanja je ugrožena. "
Guido van Rossum
![Page 7: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/7.jpg)
PYTHON ISTORIJAT
"Moja prvobitna motivacija za kreiranje Pythona bila je uočena potreba za jezikom višeg
nivoa u projektu Amoeba [Operativni sistemi].
Shvatio sam da razvoj upotrebe sistemske administracije na progamskom jeziku C traje
predugo.
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
7
![Page 8: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/8.jpg)
PODRUČJE PRIMENE
Nauka
Bioinformatika
Big data
System Administration
Unix
Web logic
Web sphere
Web Application Development
CGI
Jython – Servlets
Testing scriptsHTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
8
![Page 9: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/9.jpg)
ŠTA MOGU DA URADIM SA PYTHON JEZIKOM?
OS programiranje
GUI programiranje - Graphical User Interface Programming
Internet Skriptinig
DB programiranje - Database Programming
Izrada igara
Obrada slika
Parsiranje/Kreiranje XML/JSON fajlova
Programiranje robota
…
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
9
![Page 10: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/10.jpg)
KO KORISTI PYTHON DANAS?
Google uveliko koristi Python u svom veb sistemu pretraživanja i zapošljava Python
tvorca.
Intel, Cisco, Hevlett-Packard, Seagate, Kualcomm i IBM koriste Python za testiranje
hardvera.
ESRI koristi Python kao alat za prilagođavanje krajnjeg korisnika za svoje popularne GIS
proizvode za mapiranje.
Usluga za deljenje videa YouTube u velikoj meri je napisana na Python-u
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
10
![Page 11: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/11.jpg)
ZAŠTO LJUDI KORISTE PYTHON
PYTHON JE OBJEKTNO ORIJENTISAN
Struktura podržava takve koncepte kao polimorfizam, overloading i višestruko
nasleđivanje.
PYTHON JE BESPLATAN (OPEN SOURCE)
Preuzimanje i instaliranje Pithon-a je besplatno i izvorni kod je lako dostupan
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
11
![Page 12: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/12.jpg)
ZAŠTO LJUDI KORISTE PYTHON
Podržava dinamičke tipove podataka
Ugrađeni tipovi i alati
Veliki broj biblioteka
Automatsko upravljanje memorijom
Pokreće se virtuelnu na svim vodećim OS danas
Ukoliko imate instaliran interpreter na svim OS će se izvršiti na identičan način
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
12
![Page 13: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/13.jpg)
PYTHON 2 ILI PYTHON 3
Mnoge kompanije i dalje imaju mnogo koda koji je napisan na python 2 i dalje razvijaju
Python 2 će prestati da izbacuje security update u 2020.
Na početku učenja python-a gotovo i da ne postoje razlike
Svi važniji python paketi su izmenjeni da podrže i python 3 (99% od 300 paketa)
Python 3 je budućnost
Ukoliko znate python 3 lako ćete se privići i na python 2
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
13
![Page 14: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/14.jpg)
GDE PISATI PYTHON KOD?
Postoji nekoliko opcija za razvojno okruženje:
Text editor (Sublime Text, Atom)
Uopšteni editor za bilo koje fajlove
Plugin i add-on
Nisu samo za Python
IDE - Integrated Development Enviornment (PyCharm, Spyder)
Specijalno za python
Veći program
Dosta dodatnih funkcionalnosti
Notebok okruženje (Jupyter Notebook)
Idealno za učenje
Input kod i outpu kod jedan do drugog
Poseban format koji nije .py14
![Page 15: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/15.jpg)
INSTALACIJA PYTHON-A
Python je unapred instaliran na
već ́ini Unix sistema, uključujuc ́i Linux
i MAC OS X
Za Windovs operativne sisteme,
korisnik može preuzeti instalacion
fajlove sa
https://www.python.org/downloads/
Najnovija verzija na dan 14.10.2019.
je 3.8.0, ali je moguće koristiti i
starije verzije.
Link za preuzimanje instalacionog
fajla: WINDOWS X86-64 EXECUTABLE INSTALLER15
![Page 16: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/16.jpg)
Pratite uputstva da instalirate Python 3.x.xHTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
POKRENITE “.MSI” PREUZETI FAJL
1. Kliknite na dugme “Run” 2. Označite opciju „Add Python 3.8 to PATH
3. Zatim kliknite na “Install now”
![Page 17: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/17.jpg)
Klik na “Advanced
System Settings”
dugme
PODEŠAVANJE ENVIRONMENT PATH
Desni klik pa klik na
“Properties”
![Page 18: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/18.jpg)
PODEŠAVANJE ENVIRONMENT PATH
Klik na Environment Variables...
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
![Page 19: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/19.jpg)
TEST PYTHON 3.X.X INSTALACIJE U CMD
1. Pokrenite command prompt, upišite python i pritisnite ENTER
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
2. Ukoliko command prompt ispiše: “Python 3.x.x”,...“ možete krenuti sa python programiranjem u command promptu
3. Upišite exit( ) da se izađete iz python dela
![Page 20: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/20.jpg)
KORIŠĆENJE TEXT EDITORA
Napisati kod
Snimiti ime.py
Pokrenuti cmd
Locirati se na folder gde se nalazi py fajl
Pozvati komandu python ime.py
20HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
![Page 21: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/21.jpg)
IDLE PYTHON
21
![Page 22: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/22.jpg)
ANACONDA DISTRIBUCIJA
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
22
![Page 23: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/23.jpg)
ANACONDA DISTRIBUCIJA
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
23
![Page 24: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/24.jpg)
JUPYTER NOTEBOOK
24
![Page 25: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/25.jpg)
IZVRŠAVANJE PYTHON KODA
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
25
Tradicionalni model izvršenja Pythona:
izvorni kod koji unosite prevodi se u bajt kod,
koji potom pokreće Python Virtualna Mašine.
kod se automatski kompajlira, a zatim interpretira.
Source kod ima extenziju .py
Byte kod ima ekstenziju .pyc (compiled python code)
![Page 26: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/26.jpg)
http://vtsnis.edu.rs/predmeti/veb-programiranje/
OSNOVEPYTHON PROGRAMSKI JEZIK
26
![Page 27: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/27.jpg)
KOMENTARI
# Komentar u jednoj liniji
“ “ “
Komentar
u više
linija
“ “ “
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
27
![Page 28: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/28.jpg)
MATEMATIČKE OPERACIJE U PYTHONU
>>> 3 + 12
15
>>> 12 – 3
9
>>> 9+9 + 5 – 15 + 12
11
Napomena: Ne pišite znakove >>>
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
28
![Page 29: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/29.jpg)
OPERATORI
Operator Operacija Primer Rezultat
** Eksponent 2**3 8
% Modul / Ostatak 22%8 6
// Deljenje celog broja / Količnik 18//8 2
/ Deljenje 22/8 2.75
* Množenje 3*5 15
- Oduzimanje 5-2 3
+ Sabiranje 2+2 4
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
29
Priorite operatora: **, *, /, //, %, + i – Za promenu prioriteta koristiti ( )
![Page 30: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/30.jpg)
OPERATORI NAGLAŠENE DODELE
Iskaz Skraćeni iskaz
Pom = Pom + 1 Pom += 1
Pom = Pom - 1 Pom -= 1
Pom = Pom * 1 Pom *= 1
Pom = Pom / 1 Pom /= 1
Pom = Pom % 1 Pom %= 1
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
30
![Page 31: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/31.jpg)
MATEMATIČKE OPERACIJE U PYTHONU
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
31
![Page 32: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/32.jpg)
32
Python ima nekoliko ugrađenih tipova podatala. Neki od najvažnijih su:
Brojčane vrednosti – mogu biti:
integer (1, 2, 5, -23,...)
float (1.1, 1.2, 5.3, -3.5,...)
fraction (1/2, 2/3,...),
complex (-7+24j, 3+2j,...)
String - sekvenca Unicode karaktera (‘a’, ‘aa’, ‘Hello!’, ‘Pera’)
Boolean – može imati vrednost True ili False
Lista (Niz) - uređena sekvenca vrednosti
Tuple - uređena, nepromenljiva sekvenca vrednosti
TIPOVI PODATAKA
![Page 33: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/33.jpg)
SPAJANJE I PONAVLJANJE STRINGA
Operator + za konkatenaciju (spajanje)
>>> ‘Super’ + ‘Mario’
‘SuperMario’
Nije moguće spojiti string i broj
>>> ‘Broj’ + 42
Neophodno je eksplicitno naglasiti da se broj konvertuje u string
>>>’Broj’ + str(42)
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
33
![Page 34: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/34.jpg)
FUNKCIJA STRING( )
Funkcija str( ) pretvara bilo koji tip podatka u string
>>>str(29)
‘29’
>>>print(‘Imate ukupno ’ + str(29) + ‘ godina.’)
Svodi se na konkatenaciju stringova ‘Imate ukupno ’ + ’29’ + ‘ godina.’
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
34
![Page 35: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/35.jpg)
PROMENLJIVE
Promenljiva je imenovani memorijski prostor za čuvanje željene vrednosti
Vrednosti se čuvaju u promenljive korišćenjem iskaza dodele =
Pravila za definisanje naziva promenljivih:
Može biti samo jedna reč
Mogu da se koriste samo karakteri: slova, brojevi, donja crta
Ne može počinjati brojem
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
35
![Page 36: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/36.jpg)
PROMENLJIVE
Pravilni nazivi promenljivih Nepravilni nazivi promenljivih
tezina trenutna-tezina
trenutnaTezina trenutna tezina
trenutna_tezina 4broj
_broj 42
BROJ ukupan_$broj
account4 ‘hello’
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
36
Nazivi promenljivih su case sensitive: broj, Broj, BroJ, BRoj,…
![Page 37: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/37.jpg)
FUNKCIJE PRINT( ) I INPUT( )
Funkcija print() prikazuje vrednost stringa unutar zagrada
>>>print(‘Hello world!’)
>>>print(‘Unesite vaše ime!’)
Funkcija input( ) čeka da korisnik ukuca tekst na tastaturi i pritisne ENTER.
>>>ime = input( ) Pera
>>>print(‘Uneli ste ime ’ + ime) Uneli ste ime Pera
>>>print(‘Imate ukupno ’ + 29 + ‘ godina.’) Greška jer očekuje samo tip string
>>>print(‘Imate ukupno ’ + x + ‘ godina.’) Greška ako promenlčjiva x nije string jer
očekuje samo tip stringHTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
37
![Page 38: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/38.jpg)
DODATNI PARAMETRI FUNKCIJE PRINT( )
Funkcija print( ) ima opcione parametre end i sep koji određuju šta treba da bude
odštampano na kraju i između argumenata (šta ih razdvaja).
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
38
print(‘Hello’)
print(‘World’)
REZULTAT:
Helllo
World
print(‘Hello’, end= ‘ ’)
print(‘World’)
REZULTAT:
HellloWorld
print(‘mačka’, ‘miš’, ‘pas’)
REZULTAT:
mačka miš pas
print(‘mačka’, ‘miš’, ‘pas’, sep= ‘ ’)
REZULTAT:
mačka,miš,pas
![Page 39: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/39.jpg)
FUNKCIJA INT( )
Funkcija int() pretvara string u podatak tipa Integer. Ako joj se prosledi podatak koji
ne može da svede na ceo broj pojaviće se poruka o grešci.
>>>x = input()
29
>>>x
‘29’
>>>int(x)
29
Nakon toga je moguće računati sa x kao sa brojčanom vrednošću
>>>(x+31)*2
120
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
39
![Page 40: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/40.jpg)
FUNKCIJA FLOAT( )
Funkcija float() pretvara brojčani podatak u podatak tipa float.
>>>float(29)
29.0
>>>float(29.4)
29.4
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
40
![Page 41: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/41.jpg)
PRIMER
print('Koliko imate godina')
G=int(input())
G=G+1
print('Vi ćete napuniti ' + str(int(G)) + ' u narednih godinu dana.')
print('Vi ćete napuniti',G,'u narednih godinu dana.')
print('Vi ćete napuniti {} u narednih godinu dana.'.format(G))
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
41
![Page 42: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/42.jpg)
FUNKCIJA LEN( )
Funkcija len( ) prikazuje prikazuje dužinu stringa unutar zagrada izraženu u broju
karaktera
>>>len(‘Hello’)
5
>>>len(‘ ’)
0
ime=input() Pera
print(len(ime)) 4
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
42
![Page 43: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/43.jpg)
http://vtsnis.edu.rs/predmeti/veb-programiranje/
PITANJA I ZADACIOSNOVE
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
43
![Page 44: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/44.jpg)
PITANJA
Šta je od navedenog operator, a šta vrednost?
a) *
b) ‘hello’
c) -88.8
d) -
e) //
f) +
g) 5
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
44
![Page 45: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/45.jpg)
PITANJA
Šta je od navedenog promenljiva a šta string?
a) ime
b) ‘ime’
Navedite tri vrste podataka u python programskom jeziku.
Od čega je sastavljen izraz?
Šta sadrži promenljiva broj nakon pokretanja sledećeg koda?
Broj = 20
Broj+1
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
45
![Page 46: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/46.jpg)
PITANJA
Šta je rezultat sledećih izraza?
‘spam’ + ‘spamspam’
‘spam’ * 3
Zaokružiti pravilne nazive promenljivih
a) Egg
b) 100
c) Egg100
d) E100egg
e) ‘egg’
f) _egg
g) E$ggHTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
46
![Page 47: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/47.jpg)
http://vtsnis.edu.rs/predmeti/veb-programiranje/
KONTROLATOKAPYTHON PROGRAMSKI JEZIK
47
![Page 48: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/48.jpg)
OPERATORI POREĐENJA
Operator Značenje
== Jednako
!= Različito
< Manji od
> Veći od
<= Manji ili jednak
>= Veći ili jednak
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
48
Rezultat poredjenja je True ili False
![Page 49: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/49.jpg)
ELEMENTI KONTROLE TOKA – USLOVNO GRANANJE
IF - ELSE uslovno grananje
if godine < 20:
print(‘Ti si možda tinejdžer!’)
else:
print(‘Ti nisi sigurno tinejdžer!’)
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
49
IF - ELSE IF - ELSE uslovno grananje
if godine < 20:
print(‘Ti si možda tinejdžer!’)
elif godine < 24:
print(‘Ti si svakako mlad!’)
else:
print(‘Nisi tako mlad!’)
![Page 50: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/50.jpg)
ELEMENTI KONTROLE TOKA – PETLJA WHILE
Iskazi u telu petlje se izvršavaju sve dok je iskaz True
Broj = 1
while Broj < 5:
print(‘Hello ’ + str(Broj) + ‘. put!’)
Broj = Broj + 1
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
50
Hello 1. put!
Hello 2. put!
Hello 3. put!
Hello 4. put!
![Page 51: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/51.jpg)
ELEMENTI KONTROLE TOKA – PETLJA FOR
Iskazi u telu petlje se izvršavaju tačno određeni broj puta što zavisi od brojača u delu
range:
for i in range(5):
print(i)------------------for i in range(10,15):
print(i)------------------for i in range(0,10,2):
print(i)------------------for i in range(5,-1,-1):
print(i)HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
51
![Page 52: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/52.jpg)
http://vtsnis.edu.rs/predmeti/veb-programiranje/
PITANJA I ZADACIKONTROLA TOKA
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
52
![Page 53: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/53.jpg)
PITANJA
Koje funkcije se koriste za dobijanje vrednosti celog broja, broja sa pokretnom tačkom i
stringa?
Ispravite sledeći iskaz:
print(‘Petar Petrović ima ‘ + 24 + ‘ godine.’)
Koja su tri logička operatora? Ispisati tablicu istinitosti sva tri operatora.
Koji su operatori poređenja?
U čemu je razlika između: range(10), range(0,10) i range(1,10,1) u for petlji?
Napišite program koji štampa brojeve od 1 do 10 pomoću for petlje i pomoću while
petlje.
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
53
![Page 54: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/54.jpg)
http://vtsnis.edu.rs/predmeti/veb-programiranje/
FUNKCIJEPYTHON PROGRAMSKI JEZIK
54
![Page 55: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/55.jpg)
FUNKCIJE
Funkcija se definiše pomoću iskaza def i naziva funkcije:
def hello( ):
print(‘Zdravo svima’)
Funkciji se prosleđuje vrednost parametara unutar zagrada:
def hello(name):
print(‘Zdravo ’ + name)
Hello(‘John’)
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
55
def saberi(x,y):
z=x+y
return z
suma = saberi(5,3)
print(str(suma))
![Page 56: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/56.jpg)
ANOTACIJE FUNKCIJE
Anotacije funkcija mogu da se koriste da bi se dokumentovao tip argumenata funkcije,
kao i tip povratne vrednosti.
Interpreter ne provera tip argumenata i povratne vrednosti.
Anotacija koristi programerima da ne čitaju kod kago bi saznali koji tip podataka
funckija očekuje kao ulaznu vrednost i koji tip podataka vraća kao povratnu vrednost.
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
56
def saberi(x:int, y:int) -> int:
z=x+y
return z
suma = saberi(5,3)
print(str(suma))
![Page 57: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/57.jpg)
PODRAZUMEVANEVREDNOSTI ARGUMENATA
Svakom argumentu Python funkcije može da se dodeli podrazumevana vrednost koja se
automatski koristi ako kod koji poziva funkciju ne dostavi alternativnu vrednost.
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
57
def saberi(x:int, y:int=1) -> int:
z=x+y
return z
suma = saberi(5,3)
print(str(suma))
print(saberi(5))
REZULTAT:
8
6
![Page 58: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/58.jpg)
POZICIONO DODELJIVANJE I PO KLJUČNIM REČIMA
Python omogućava pozivanje funkcija pomoću imenovanih parametara.
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
58
def saberi(x:int, y:int) -> int:
z=x+y
return z
suma = saberi(5, 3)
print(str(suma))
def saberi(x:int, y:int) -> int:
z=x+y
return z
suma = saberi(y=5,x=3)
print(str(suma))
![Page 59: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/59.jpg)
IMPORTOVANJE MODULA
Svi python programi mogu da pozivaju osnovni skup fukcija kao što su print( ), input( ),
len( ),...
Python unutar standardne biblioteke sadrži set modula.
Svaki modul sadrži srodnu grupu funkcija – math, random,...
Moduli se dodaju pomoću rezervisane reči import i naziva modula.
import math
math.sqrt(36) poziva funkciju sqrt( ) iz modula math
import random
random.randint(1,10) poziva funkciju randint( ) iz modula random
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
59
![Page 60: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/60.jpg)
MODUL MATH
Funkcija Opis
log2(x) Vraća logaritam sa osnovom 2 od x
log10(x) Vraća logaritam sa osnovom 10 od x
pow(x, y) Vraća rezultat operacije x na stepen y
sqrt(x) Vraća kvadratni koren od x
ceil(x) Vraća najmanji integer broj koji je veći ili jednak x
pi Vraća vrednost matematičke konstante PI = 3.14159...
e Vraća vrednost matematičke konstante e = 2.71828...
sin(x) Vraća vrednost sinusa ugla x
tan(x) Vraća vrednost tangensa ugla x
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
60
![Page 61: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/61.jpg)
KREIRANJE MODULA
Kreiranje modula se vrši tako što se napravi fajl od onih funkcija koje se žele deliti.
Kada je modul kreiran, njegov sadržaj se stavlja na raspolaganje drugim programima
uvoženjem modula pomoću naredbe import.
Funkcija modula se poziva navodjenjem imena modula, a posle tačke i imena funkcije.
Kreirani modul treba da se nalazi:
1. u istom radnom direktorijumu kao i fajl u kome se importuje modul
2. u site-packages (tu se nalaze moduli drugih dobavljača koji su instlirani).
3. na lokaciji standardne biblioteke
U suprotnom interpreter će javiti grešku: ImportError
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
61
![Page 62: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/62.jpg)
PRIMER KREIRANJA MODULA
Kreiranje modula pretraga.py
Pozivanje modula iz tekućeg aktivnog direktorijuma
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
62
def pretraga_slova(slova:str, text:str)->set:skup_slova=set(slova)pronadjeno = skup_slova.intersection(set(text))for skup_slova in pronadjeno:
print(skup_slova)return set(slova).intersection(set(text))
#print(pretraga_slova('aeiou','Neki tekst za pretragu koji sadrzi samoglasnike.'))
import pretragaprint(pretraga.pretraga_slova('sla','Neki tekst stvarni ili lazni koji sadrzi x i z'))
![Page 63: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/63.jpg)
UBACIVANJE MODULA U SITE-PACKAGES
Lokacija site-packages interpretera sadrži Python module drugih dobavljača koje smo
instalirali.
Interpreter pruža mogućnost dodavanja modula u početnu postavku Pythona.
Skup modula uključen u standardnu biblioteku uređuju glavni developeri Pythona i ona
služi za širu upotrebu ali ne i za neovlašćeno baratanje.
Svoje module nemojte dodavati u standardnu biblioteku već na lokaciju site-packages.
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
63
![Page 64: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/64.jpg)
UBACIVANJE MODULA U SITE-PACKAGES
Počevši od modula 3.4 Python standardna biblioteka sadrži modul po imenu setuptools,
pomoću koga se svaki modul može dodati u site-packages.
Dodavanjem modula u site-packages se odvija u tri koraka:
1. Pravljenje opisa za distribuciju – identifikuje se modul koji setuptools treba da
instalira
2. Pravljenje fajla za distribuciju – koji može da se deli i koji sadrži kod modula
3. Instaliranje fajla za distribuciju
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
64
![Page 65: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/65.jpg)
UBACIVANJE MODULA U SITE-PACKAGES – KORAK 1
1. Pravljenje opisa za distribuciju – identifikuje se modul koji setuptools treba da instalira
Kreiranje fajla setup.py – sadrži opis
Kreiranja fajla README.txt – prazan fajl
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
65
![Page 66: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/66.jpg)
UBACIVANJE MODULA U SITE-PACKAGES – KORAK 1
1. Pravljenje opisa za distribuciju – identifikuje se modul koji setuptools treba da instalira
Kreiranje fajla setup.py
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
66
from setuptools import setupsetup(name=’pretraga',version='1.0',description=’VTŠ Web programiranje Search Tools',author=’Slavimir Stošović',author_email=’[email protected]',url=’vtsnis.com',py_modules=[’pretraga.py'],
)
<- Uvoženje funkcije setup iz modula setuptools
<- Lista .py fajlova koji se uključuju u paket
<- Argument name identifikuje distribuciju.
Obično se distirbucija imenuje po modulu.
![Page 67: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/67.jpg)
UBACIVANJE MODULA U SITE-PACKAGES – KORAK 2
2. Pravljenje fajla za distribuciju – koji može da se deli i koji sadrži kod modula
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
67
D:\python\webapp>py -3 setup.py sdistrunning sdist
running egg_info
creating pretraga.egg-info
…
writing manifest file 'pretraga.egg-info\SOURCES.txt'
running check
creating pretraga-1.0
…
creating dist
Creating tar archive
removing 'pretraga-1.0' (and everything under it)
D:\python\webapp>
<- Izvršava kod u setup.py
<- Predaje sdist kao argument
REZULTAT
![Page 68: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/68.jpg)
UBACIVANJE MODULA U SITE-PACKAGES – KORAK 3
3. Instaliranje fajla za distribuciju pomoću alata za instaliranje pip (Package Installer for
Python).
Kada je modul instaliran može se koristiti u svakom programu korišćenjem naredbe
import pretraga bez obzira što fajlovi nisu u istom tekućem direktorijumu kao i
program.
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
68
D:\python\webapp\dist> py -3 -m pip install pretraga-1.0.tar.gz
Processing d:\python\webapp\dist\pretraga-1.0.tar.gz
Installing collected packages: pretraga
Running setup.py install for pretraga ... done
Successfully installed pretraga-1.0
PS D:\python\webapp\dist>
![Page 69: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/69.jpg)
DELJENJE KODA
Fajl za distirbuciju se može deliti sa drugim Python programerima:
Nezvanično – distirbucija purem USB, e-pošte, preuzimanje sa sajta a zatim instalacija
pomoću pip
Zvanično – postavljanjem na centralno pythonovo skladište na vebu PyPI (Python Package
Index). Čita se pajpi-aj. https://pypi.python.org/pypi
Detalji o načinu prenošenja i deljena fajlova za distirbuciju na Python Package Authority
https://www.pypa.io
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
69
![Page 70: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/70.jpg)
DOKUMENT PEP8
Dokument PEP8 predstavlja skup pravila kojih se treba pridržavati u cilju poboljšanja
čitljivosti Python koda.
U okviru alata pytest postoji dodatak pep8 koji koristi radni okvir za testiranje pytest
za proveru da li kod krši smernice PEP8.
Instaliranje pytest alata za testiranje: py -3 -m pip install pytest
Instaliranje dodatka pep8: py -3 -m pip install pytest-pep8
Provera da li je kod usklađen sa PEP8 standardom: py.test –pep8 imefajla.py
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
70
![Page 71: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/71.jpg)
DOKUMENT PEP8 – REZULTATI TESTA
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
71
py -3 -m pip install pytest-pep8
![Page 72: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/72.jpg)
VREDNOST NONE
U python-u postoji vrednost None koja predstavlja odsutnost vrednosti.
Ovo je jedina vrednost tipa podatka NoneType.
U drugim programskim jezicima je to null, nil, undefined,...
Funkcije koje ne sadrže naredbu return, vraćaju zapravo u pozadini None, jer svi
pozivi funkcija treba da svedu poziv na vraćenu vrednost.
>>>spam= print(‘Zdravo!’)
Zdravo!
>>>None == spam
True
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
72
![Page 73: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/73.jpg)
LOKALNI I GLOBALNI OPSEG VIDLJIVOSTI
LOKALNE PROMENLJIVE - Parametri i promenljive funkcije postoje samo u
lokalnom opsegu vidljivosti.
GLOBALNE PROMENLJIVE - Promenljive koje su dodeljene van svih funkcija
postoje u globalnom opsegu vidljivosti.
VAŽNA PRAVILA:
1. Kod u globalnom opsegu vidljivosti ne može da upotrebi lokalne promenljive.
2. Lokalni opseg vidljivosti može da pristupi globalnim promenljivama.
3. Kod u lokalnom opsegu vidljivosti funkcije ne može da upotrebi promenljive u bilo kojem
drugom lokalnom opsegu vidljivosti.
4. Može se upotrebiti isti naziv za različite promenljive ako se nalaze u različitim opsezima
vidljivosti. HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
73
![Page 74: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/74.jpg)
LOKALNI I GLOBALNI OPSEG VIDLJIVOSTI - PRIMERI
1. Lokalne promenljive ne mogu da se upotrebe u globalnom opsegu vidljivosti.
def spam( ):
eggs = 31337
spam( )
print (eggs)
REZULTAT: Name ‘eggs’ is not defined
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
74
![Page 75: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/75.jpg)
LOKALNI I GLOBALNI OPSEG VIDLJIVOSTI - PRIMERI
2. Lokalni opsezi vidljivosti ne mogu da koriste promenljive u drugim lokalnim opsezima
vidljivosti.
def spam( ):
eggs = 99bacon( )
print(eggs)
def bacon( ):
ham=101eggs=0
spam( ) Rezultat je: 99
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
75
![Page 76: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/76.jpg)
LOKALNI I GLOBALNI OPSEG VIDLJIVOSTI - PRIMERI
3. Globalne promenljive mogu da se čitaju iz lokalnog opsega vidljivosti.
def spam( ):
print(eggs)
eggs=42spam( )
print(eggs) Rezultat je:
42
42
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
76
![Page 77: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/77.jpg)
LOKALNI I GLOBALNI OPSEG VIDLJIVOSTI - PRIMERI
4. Lokalne i globalne promenljive koje imaju isti naziv
def spam( ):
eggs=‘spam local’
print(eggs)
def bacon( ):
eggs=‘bacon local’
print(eggs)
spam( )
print(eggs)
eggs=‘global’
bacon( )
print(eggs) 77
Rezultat je:
bacon local
spam local
bacon local
global1
2
3
4
5
6
7
8
![Page 78: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/78.jpg)
LOKALNI I GLOBALNI OPSEG VIDLJIVOSTI – ISKAZ GLOBAL
Ako je potrebno da se modifikuje vrednost globalne promenljive unutar funkcije koristi
se iskaz global.
def spam( ):
global eggs
eggs=‘spam’
eggs=‘global’
spam( )
print(eggs) Rezultat je:
spam
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
78
![Page 79: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/79.jpg)
LOKALNI I GLOBALNI OPSEG VIDLJIVOSTI – ISKAZ GLOBAL
Ako je potrebno da se modifikuje vrednost globalne promenljive unutar funkcije koristi
se iskaz global.
def spam( ):
print(eggs)
eggs=‘spam local’
eggs=‘global’
spam( )
UnboundLocalError: local variable ‘eggs’ referenced before assignment
Korišćenje lokalne promenljive pre dodele vrednosti.
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
79
![Page 80: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/80.jpg)
http://vtsnis.edu.rs/predmeti/veb-programiranje/
PITANJA I ZADACIFUNKCIJE
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
80
![Page 81: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada](https://reader035.vdocuments.mx/reader035/viewer/2022070816/5f1097307e708231d449dbc2/html5/thumbnails/81.jpg)
PITANJA
Koji iskaz kreira funkciju? Napisati primer za kreiranje funkcije Primer.
Šta se dešava sa promenljivama u lokalnomopsegu vidljivosti kada se vrati poziv
funkcije?
Ako funkcija nema iskaz return šta je vraćena vrednost funkcije?
Zadatak 1. guess the number
Zadatak 2. collatz sequence
HTTP://VTSNIS.EDU.RS/PREDMETI/VEB-PROGRAMIRANJE/
81