You are on page 1of 29

PROGRAMIRANJE U PYTHONU

Sadržaj
1. VARIJABLE ...........................................................................................................................
............ 2

2. NAREDBE UNOSA I ISPISA ..................................................................................................


............. 3

1
[PROGRAMIRANJE U PYTHONU]

DIO PRVI
1. VARIJABLE

Varijabla je memorijska
lokacija simboličnog imen
a u koju se sprema vrije
dnost nekog
podatka. Varijabla se sasto
ji od imena, adrese i vrijed
nosti.

Glavni postulati varijable su slje


deći:

a) Ime varijable smije sadr


žavati samo brojeve, velika
i mala slova engleske abec
ede i
donju crticu _
b) Ime ne smije početi s brojem
c) Python razlikuje velika i mal
a slova

a=34
I
V

2
Operator
pridruživanja

3
[PROGRAMIRANJE U PYTHONU]

Vrijednost varijabli pridru


žujemo od desna na lijevo
.Varijablama je moguće o
sim brojčanih
vrijednosti pridružiti i tekstualne
vrijednosti kao na primjer:

a = 'infor
matika'
Naravno potrebno
je voditi brigu o znaku pri
druživanja da se ne poisto
vjeti sa dvostruko
jednako == što predstavlja opera
tor usporedbe.

Osnovni tipovi operatora s kojim


a varijable mogu raditi su:

// Cjelobrojno dijeljenje

4
[PROGRAMIRANJE U PYTHONU]

Uz
prikazane operatore, varija
ble često poprimaju i odre
đeni tip podataka.

Tipovi podataka, dijele se na :

Brojevne:
d
cjelobroj e
ni tip pod c
atka integ i
er m
a
Int()- l
pretvara u u
cijeli broj
odbacujuć
i
realni čnom
tip po točko
datka m)
float
float()-
pretvar
(s a u real
pomi ni broj
logič
ki ti bool()-
p po radi s logi
datk čkim tipo
a bo vima pod
ol ataka
(true, false)

Z stri
ng(
)-
rad
i sa
zn
ako
vni
m
tip
ovi
ma
podataka
znakovni niz - string

Naziv za cjelobrojni tip


podataka u Pythonu je int.
5
Za razliku od drugih
programskih jezika u
Pythonu broj znamenaka
cijeloga broja nije
ograničen, što znači da se
mogu koristiti proizvoljno
veliki brojevi.
U računalima se podaci
zapisuju u binarnom br.
sustavu pa će ponekad biti
prikladno cijeli broj
utipkati u binarnom
obliku. Dovoljno je ispred
binarnog prikaza napisati
0b.

Primjer:

>>> 0b00001010 >>> 0b11111111


10 255
>>> >>>

Python binarni zapis


pretvara u dekadski.
Nizovi bitova se često
zapisuju u
heksadekadskom obliku
(0,1,2…E,F). Ispred
heksadekadskih brojeva
treba napisati 0x.
Primjer:

>>> 0x0A >>> 0xFF


10 255
>>> >>>

Moguće je i obrnuto,
uneseni cijeli broj
prikazati u binarnom ili
heksadekadskom obliku.
Pretvorbu rade funkcije
ugrađene u
Python bin( ), odnosno
hex( ) .

Primjer:
>>> bin(15) >>> bin(128)
'0b1111 '0b10000000'
>>> >>>
>>> hex(255)
>>> hex(15) '0xff'
'0xf'
>>> >>>

6
Zapis realnih brojeva
zapisuje se u Pythonu
formatom dvostruke
preciznosti za čiju pohranu
je potrebno 8 bytova (64
bita). Ako su vrijednosti
brojeva u nekim
granicama, Python ih
ispisuje u obliku broja s
decimalnom točkom, a
vrijednosti izvan tih
granica ispisuje u
eksponencijalnom obliku.

Primjer: decimalni
brojevi
veliki brojevi

>>> 3.5 >>> 0.00035 >>> 1e4 >>> 1e12


3.5 0.00035 10000.0 10000000000
>>> 0.0000345678 >>> 1e7 >>> 1e16
>>> 3.
3.45678e-05 10000000.0 1e+16
3.0 >>>
>>> >>>
>>>
Zaključak oko zapisa
velikih brojeva ?

Logički ili Booleov tip


podataka može poprimiti
samo dvije vrijednosti:
True i False. Python je
case sensitive pa treba biti
oprezan oko upotrebe
velikih i malih slova:
>>> True
True
>>> False
False
>>> true
Traceback (most recent
call last):
File "<pyshell#24>", line
1, in <module>
true
NameError: name 'true' is
not defined

7
Python ima ugrađene
funkcije int( ) i bool( )
pomoću koje možemo
ustanoviti cjelobrojnu
vrijednost neke logičke
vrijednosti i obrnuto.
Primjer:
>>> bool(100)
>>> int(True)
>>> int(True) True
1
1 >>> bool(-100)
>>> int(False)
True
>>> int(False) 0
>>> bool(0)
0 >>> bool(1)
False
True
>>>

Zaključak: kojem broju


pripada vrijednost
False?
DIO DRUGI

Ukratko o Pythonu.

Relativno je novi
programski jezik, nastao
1989. godine. Osmislio
ga je Nizozemac Guido
van Rossum i dao mu
naziv prema letećem
cirkusu Monty Python.
Smatra se jednim od
najprikladnijih
programskih jezika za
podučavanje
programiranja.
Programsko okruženje
Pythona je za pripremu i
izvođenje programa
besplatno i moguće ga je
preuzeti na adresi

https://www.python.o
rg/downloads/

Taj programski jezik


podržava većina
8
računalnih operacijskih
sustava (MS Windows,
Linux, Apple MacOS) a
postoje i inačice za
operacijske sustave
mobilnih uređaja (iOS,
Android).
Razlike u svim
inačicama koje počinju s
3 zanemarive su, pa će
svi primjeri raditi i u
bilo kojoj drugoj inačici
Pythona.

Python se može
pokrenuti kao Python
Shell - otvara se
interaktivno sučelje (vidi
sliku iznad) tzv.
integrirano razvojno
okruženje (engl.
Integrated Development
Environment – IDE ).
Kod Pythona razvojno
okruženje zove se IDLE.
Kad se pokrene, pojavi se
prozor koji čini
interaktivno sučelje čiji
naslov je Python Shell.
Može se koristiti i
interpreterski način rada
u programu u kojem se
prikazuju izlazne
vrijednosti naših
programa, a pogodno je i
za provjeru rada neke
naredbe. U takvom obliku
9
rada izvodi se naredba po
naredba a program nije
moguće spremiti (slika
ispod).

Znakovni niz – string


Znakovni niz – string
osnovni je tip podataka za
prikaz teksta. U Pythonu
se taj tip zove str, a
vrijednost znakovnog niza
obilježava se jednostrukim
ili dvostrukim
navodnicima na početku i
kraju niza. U pravilu je
preporučljivo
upotrebljavati jednostruke
navodnike za ograđivanje
teksta. Jedino ako se
unutar teksta upotrebljava
jednostruki navodni znak,
za ograđivanje se
upotrebljavaju dvostruki
navodnici.

Primjer:

>>> 'Monthy
Python'
'Monthy Python'
>>> 'Song "Always
look on the bright
side of life" by Eric
Idle'
'Song "Always look
on the bright side of
life" by Eric Idle'
>>>
10
Posebni znakovi za
oblikovanje teksta
počinju lijevo
zakošenom crtom:

Poseban znak Opis djelovanja


\n prijelaz u novi red
\t tabulator
\\ ispis lijevo ukošene crte
\' ispis jednostrukih navodnika
\“ ispis dvostrukih navodnika

Primjer:

Ispis kao u
prethodnom primjeru
postižemo na sljedeći
način pomoću \“ :

>>> "Song \"Always


look on the bright
side of life\" by Eric
Idle"
'Song "Always look
on the bright side of
life" by Eric Idle'
>>>
>>> "Song \nAlways
look on the bright
side of life \nby Eric
Idle"
'Song \nAlways look
on the bright side of
life \nby Eric Idle'
>>>

Python ispisuje
znakovni niz onako
kako je utipkan, no taj
će isti niz funkcijom
print( ) biti ispisan na
zaslonu onako kako
je zamišljeno:

11
>>> print("Song \
nAlways look on the
bright side of life\
nby Eric Idle")
Song
Always look on the
bright side of life
by Eric Idle
>>>

Znakovni niz može biti


zadan ograđen s tri
uzastopna navodnika
(jednostruka ili dvostruka).
Tada se tekst ispisuje
točno onako kako je
zadan, osim što prvi redak
pomiče za tri mjesta:

>>> '''prvi redak


drugi redak
treći redak'''
>>>
'prvi redak\ndrugi
redak\ntreći redak'
>>> print('''prvi
redak
drugi redak
treći redak''')
prvi redak
drugi redak
treći redak
>>>
Znakovni nizovi
ograđeni s tri
uzastopna navodnika
imaju u Pythonu
posebnu ulogu:
omogućuju nam
prikladno
dokumentiranje
napisanih programa
radi čega se zove
dokumentacijskim
nizom (docstring).

12
U Pythonu se za
kodiranje upotrebljava
kodni sustav Unicode
i to inačica UTF-8 .
Kodiranje preko
milijun znakova svih
svjetskih pisama
obavlja se s 1 do 6
bytova; dijakritički
znakovi hrvatske
abecede trebaju za
svoj smještaj 2 byta a
ostali znakovi po 1
byte.
U Pythonu postoji
funkcija ord( ) koja
vraća dekadsku
vrijednost pojedinog
znaka.
Funkcija print ( )
omogućuje ispis i
više vrijednosti
odjednom koje unutar
zagrada moraju biti
razdvojene zarezima
(gdje će Python
umetnuti razmak).
Upotrebom funkcija
možemo ustanoviti
kako su kodirana
pojedina slova.
Primjer:
>>> print ( 'A', ord
( 'A' ), hex ( ord ('
A' )), bin (ord ('A' )))
A 65 0x41
0b1000001
>>>
>>> print ( 'ć', ord ( 'ć'
), hex (ord ( 'ć' )), bin
(ord ( 'ć' )))
ć 263 0x107
0b100000111
>>>
Primjer:

13
Saznajte vrijednosti za
Š , š, Đ, đ, Ž , ž, Č,
č, Ć . DZ
Kakav je redoslijed
velikih i malih slova u
kodnom sustavu?

Korisna funkcija za
rad s brojevima je
abs( ), koja vraća
apsolutnu vrijednost
broja.
Primjeri:

>>> abs ( -5 )
5
>>> abs (4.5 )

4.5
>>> abs ( -5.6 )
5.6
>>>
Zadatak 1: DZ
U interaktivnom sučelju
preračunajte koliko 100000
sekundi iznosi u danima,
satima i minutama?

>>> 100000//60
1666
#min
>>> 100000%60
40
#sec - ostatak
>>> 1666//60
27
#sat
>>> 1666%60
46
#min - ostatak
>>> 27//24
1
#dan
>>> 27%24

14
3
#sat - ostatak
>>>

Rezultat je 1 dan, 3 sata, 46


min i 40 sec.

Nakon izračuna provjerite


da li je rezultat točan?

>>>
((1*24+3)*60+46)*60+40
100000
#sec
>>>
Operatori u Pythonu
rangirani su na način
prikazan u tabeli:

Operator Značenje
** potenciranje
- negacija
*, /, //, % Množenje, dijeljenje, cjelobrojno dijeljenje, ostatak
+, - zbrajanje, oduzimanje

15
Provjerite sljedeće izračune:
DZ
>>> ((1*24+3)*60+46)*60+40
>>> 3+12/3*(60-20)
>>> 3+12/(3*60)-20
>>> 3+12//3*60-20
>>> 3+12//(3*60)-20
>>> 2+12//(3*60)-20
>>> 3+12/3*(60-20)
163.0
>>> 3+12/3*60-20
223.0
>>> 3+12/(3*60)-20
-16.933333333333334
>>> 3+12//3*60-20
223
>>> 3+12//(3*60)-20
-17
>>> 2+12//(3*60)-20
-18
>>>

2. K
O
M
E
N
T
A
R
I

Kao i u svakom programsk


om jeziku tako i u Pythonu
postoje komentari
koji programerima olakša
vaju pisanje programsko
g kôda. Korisno je
opisati što se kojim od dijelova programskoga kôda želi postići. Takvi
opisi zovu se komentari.

Komentari u Pythonu poči


nju znakom "hash" - #. Na
kon znaka za

16
početak komentara,
e do kraja linije.

Kako su komentari t
u da pojasne dio kôd
a, oni se ne interpret
iraju, tj.
prilikom izvođenja
programa se ignorir
aju.
>>> # Ovo
je prvi
komentar
>>> var1
= 1 #
ovo je
drugi
komentar
>>>text = "# Ovo nije
komentar jer se nalazi
unutar navodnika."

print(var1)
print(text)
Izlaz:
1
# Ovo nije komentar
jer se nalazi unuta
r navodnika.
Komentari
Ako je programski kôd kvalite
tno komentiran, programer k
oji čita takav kôd puno će br
že shvatiti logiku programa.

Uz komentare koji se prote


žu od znaka "hash" - # pa
do kraja linije,
postoje komentari pomoću
kojih možemo napisati ne
ki opisni tekst kroz
nekoliko linija ili pak kom
entirati cijeli odsječak pro
gramskog kôda.
Komentari koji se protežu
kroz nekoliko programski
h linija počinju i završavaj
u
s ''' ili """ (tri jednostruka i
li tri dvostruka navodnika)
.
Bitno je naglasiti da znak
za početak komentara koji
se proteže kroz nekoliko
programskih linija mora bi
ti napisan na početku retka
, tj. ispred znaka za početa
k

17
komentara u nekoj liniji n
e smije pisati nikakav pro
gramski kôd.
Znakovni niz može biti
zadan ograđen s tri
uzastopna navodnika
(jednostruka ili dvostruka).
Tada se tekst ispisuje
točno onako kako je
zadan, osim što prvi redak
pomiče za tri mjesta:

>>> '''prvi redak


drugi redak
treći redak'''
>>>
'prvi redak\ndrugi
redak\ntreći redak'
>>> print('''prvi
redak
drugi redak
treći redak''')
prvi redak
drugi redak
treći redak
>>>
Znakovni nizovi
ograđeni s tri
uzastopna navodnika
imaju u Pythonu
posebnu ulogu:
omogućuju nam
prikladno
dokumentiranje
napisanih programa
radi čega se zove
dokumentacijskim
nizom (docstring).

var1 = 1
print(var1)
11
''' Ovo je komentar
koji se proteže
kroz nekoliko
programskih linija '''

18
var1 = 1
print(var1)
1
""" Ovo je komentar
koji se proteže
kroz nekoliko
programskih linija """

19
DIO TREĆI
7 3.NAREDBE UNOSA
I ISPISA
INPUT

Da bi mogli manipuirati p
odacima i nad njima vršiti
različite operacije, potreb
no je dobaviti
podatke nad kojima će se
moći vršiti različite opera
cije. Kako bi omogućili
upisivanje
tekstualne ili brojčane vrij
ednost u Python programs
ki jezik, potrebno je upotri
jebiti naredbu
input.

Naredba input sama za seb


e nema
značenje. Moramo ju
pridružiti nekoj varijabli ka
o

običnu brojčanu ili tekstua


lnu vrijednost. Navikli sm
o različitim varijablama p
ridruživati

20
različite vrijednosti no uo
bičajenim pridruživanjem
vrijednosti nekoj varijabli
(na primjer:

a=5), odredili smo vrije


dnost unutar skripte pro
gramskog jezika. Kako
bi omogućili

korisniku da preko tipkov


nice unosi podatke u Pyt
hon shell sučelje za izvrš
avanje programa

potrebno je upotrijebiti up
ravo naredbu input. Kao š
to smo dosad pridruživali
neku vrijednost

varijabli pomoću znaka pr


idruživanja „ = “,
sada ćemo naredbu input
zajedno s njezinom

sintaksom pridružiti nekoj


varijabli a.
Kako u Pythonu unaprije
d nije zadan tip podatak
a, on

svaki unos interpretira k


ao niz znakova, a ne br
ojčanu vrijednost. Stoga
prije naredbe input,

potrebno je odrediti tip podataka


za rad s brojevima ( int, float,
bool, string ).

21
PROGRAMIRANJE
Ž U PYTHONU

Primjeri unosa vrijednosti primjenom razl


ičitih tipova podataka:

Svaki tip podataka nužno zahtijeva pisanje


zagrada.

Naredba input bez teksta

U slučaju da želimo raditi sa zna


kovnim nizovima, onda nije potre
bno naredbi input
pridruživati tip podataka. Nakon tipa p
odataka (ukoliko za to postoji potreba)
dodaje se
ključna riječ input. Iznimno je bitno
za naredbu input pisanje zagrada. U
nutar tih zagrada,
moguće je pisati tekst. Nije nužno pi
sati tekst, ali pomoću teksta jasnije
možemo korisniku
odrediti što se od njega traži: da li se t
raži unos brojčane vrijednosti ili znak
ovnog niza.
22
[PROGRAMIRANJE U PYTHONU]

PRINT

Naredba za ispisivanje vrijednosti međut


im ne predstavlja neko veliko odstupanj
e od sintakse naredbe za unos. Naredba
za unos aktivira se ključnom riječi print
. Nakon tte riječi otvaraju se i zatvaraju
zagrade. Unutar zagrada, moguće je ispi
sati tekst, ali i vrijednosti varijabli.
Print sam dodaje razmak između višest
rukih vrijednosti.
Glavna je razlika što se tekst uvi
jek stavlja unutar navodnika. To
je znak Pythonu dda se radi o por
uci koju korisnik želi ispisati. Vrij
ednost varijable se ispisuje na nač
način da se ta varijabla pozove un
utar naredbe print na način da se
upiše njezino slslovo na odgovara
juće mjesto. Sve tekstualne vrijed
nosti unutar naredbe print kao i vr
ijednosti varijabli, moguće jeoodv

ojiti zarezom „,“. Dakle naredba i


spisa omogućuje:
 ispis vrijednosti na standardni izlaz
(zaslon monitora)
 višestruke vrijednosti odvojene zar
ezom

23
Zadatak 2: sastavite program kojim se
traži unos imena (u odgovarajućem
padežu) te se ispisuje poruka „ Dobar
dan „ime“.

Zadatak 3: sastavite program


kojim se traži unos dva cijela
te se ispisuje njihova suma.

Zadatak 4: sastavite program kojim se traži


unos početnih vrijednosti a zatim se
računa opseg
i površina
pravokutnika.

Zadatak 5:
Primjer s preračunavanjem
100000 sekundi u minute, sate i
dane napišite koristeći
navedene varijable (u
interpreterskom načinu rada):

24
- sekunde,
ostatak_sekundi,
minute,
ostatak_minuta, sati,
ostatak_sati, dani
- ispis rezultata naredbom
print

>>> sekunde=100000
>>> ostatak_sekundi=sekunde
%60
>>> minute=sekunde//60
>>> ostatak_minute=minute
%60
>>> sati=minute//60
>>> ostatak_sati=sati%24
>>> dani=sati//24
>>> print(dani, "dan,",
ostatak_sati,"sata,",
ostatak_minute, "minuta,",
ostatak_sekundi,"sekundi")
1 dan, 3 sata, 46 minuta, 40
sekundi

25
Zadatak 6:

Isti primjer koji ste radili u


interpreterskom sučelju IDLE-
a, sad unesite kroz uređivački
dio (interaktivni) sučelja za
proizvoljan unos vremena(u
sec.), te spremite pod nazivom
„Sekunde u dane, sate, minute i
sekunde“.
>>> sekunde=int(input("unesite
broj sekundi, ne manji od
87000:"))
ostatak_sekundi=sekunde%60
minute=sekunde//60
ostatak_minute=minute%60
sati=minute//60
ostatak_sati=sati%24
dani=sati//24
print("dana:",dani,";","sati:",ost
atak_sati,";","minuta:",ostatak_
minute,";","sekundi:",ostatak_s
ekundi,)
======================
======================
====================
RESTART:
H:/programiranje/Sekunde u
dane, sate, minute i sekunde.py
======================
======================
===================
Unesite broj sekundi, ne manji
od 87000: 99123
dana: 1 ; sati: 3 ; minuta: 32 ;
sekundi: 3
26
Koristimo li ugrađenu funkciju
divmod ( ) koja ima dva
parametra kao rezultat
dobijemo cjelobrojni količnik i
ostatak.

Zadatak 7:

Dijeljenjem nekog broja npr.


170 s 30 kao rezultat mora se
ispisati cjelobrojni rezultat i
ostatak:
x=170
y=30
količnik, ostatak = divmod ( x,
y)

print (količnik, ostatak)


Rezultat:
================= RESTART:
H:/programiranje/divmod_funkcija.p
y =================
5 20

>>>

Naredbe višestrukog
pridruživanja omogućuju
pridruživanje onoliko izraza
odvojenih zarezima koliko je s
lijeve strane imena varijabli.
Primjer:

27
( zarezom odvajamo
višestruko pridruživanje, npr.,
zbroj, razlika = a+b, a-b )

Za primjer preračunavanja
sekundi u dane, sate i minute
prikladna je navedena funkcija
divmod.

Zadatak 8: primijenite
navedenu funkciju divmod u
zadatku sa sekundama za
proizvoljan unos vremena(u
sec.)

>>>sekunde=int ( input (
"unesite broj sekundi, ne manji
od 87000:" ) )
minute, sekunde = divmod
( sekunde, 60 )
sati, minute = divmod
( minute ,60 )
dani, sati = divmod ( sati ,24 )
print ( "dana:", dani, "; " , " sati:
" , sati, " ; " , " minuta: ",
minute, " ; " , " sekundi: ",
sekunde)
== RESTART:
H:/programiranje/Sekunde u
dane, sate, minute i
sekunde_divmod.py ==
28
unesite broj sekundi, ne manji
od 87000 : 98000
dana: 1 ; sati: 3 ; minuta: 13 ;
sekundi: 20
>>>

Naredbe višestrukog
pridruživanja možemo pisati i
tako da oko niza varijabli s
lijeve strane znaka
pridruživanja i oko niza
vrijednosti s desne strane
stavimo okrugle zagrade. Niz
varijabli napisan unutar
okruglih zagrada poseban je tip
podataka koji se naziva n-torka
(engl. tuple) pri čemu elementi
n-torki mogu biti različitih
osnovnih tipova, dakle možemo
miješati tipove int, float, string,
Boolean.

Pogodne su za funkcije koje


nam daju više povratnih
rezultata npr. divmod ( ) .

29

You might also like