81
PYTHON PROGRAMSKI JEZIK dr SLAVIMIR STOŠOVIĆ, dipl. inž. el. 1

dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada

  • Upload
    others

  • View
    37

  • Download
    0

Embed Size (px)

Citation preview

Page 1: dr SLAVIMIR STOŠOVIĆ, dipl. inž. el....OS programiranje GUI programiranje - Graphical User Interface Programming Internet Skriptinig DB programiranje - Database Programming Izrada

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

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

Š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

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

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

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

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

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

Š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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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