Python

All posts tagged Python

Upotrebom naredbi if,else,if-elif-else,možemo napisati program koji se ponaša razumno.U njima se donose odluke te s tim naredbama možemo rješavati znatno veću klasu problema.Ustonovili smo da bi u pythonu bilo korisno kada bi programi mogli ponavljat blokove naredbi,to je moguće zahvaljujući for petlji.Sintaksa for petlje u pythonu izgleda ovako:
for i in range(n):

         blok_naredbi

Iz ovoga se da zključiti da će se  blok naredbi ponoviti n puta,stim da će u prvom prolazu varijabla i imati vrijednost 0 (nula) a u drugom 1 (jedan)i tako redom.Važno je zapamtiti da Python počinje brojati sa nulom.

Sa slike je vidljivo da spython uistinu broji od nule te ako nam treba ispis brojeva od 0-10 pisat ćemo to ovako: for i  in range (11):

U gornjem programu (na slici) funkcija print() pozvana je 10 puta i ispisala je 10 vrijednosti varijable i,ali u novom redu.Nama bi zgodnije bilo  kada bi smo sve vrijednosti ispisivali u istom redu,to možemo postici tako da napišemo  end = ‘ ‘ pogledajmo primjer

Dakle u gornjem primjeru smo sve vrijednosti stavili u jedan red,ukoliko između navodnika stavite veći prazan prostor to je veći i razmak između brojeva:

Kod ovakvog ispisa moramo biti oprezni. Ako želimo ispisivati više brojeva sve u istom redu, ispis može postati vrlo neuredan i nepregledan. Mogli bi na primjer odlučiti da u jednom redu ispisujemo po deset brojeva. Vidimo da je to jednostavno riješiti: nakon svakih deset ispisa treba preći u novi red. a u IDLE-u to bi moglo izgledati ovako:

Evo jedne zanimljivosti vezane uz python i for petlju u pythonu:

Kao što vidimo ova funkcija je ispisala svaki treći broj iz segmenta iz čega možemo zaključiti da je treći parametar taj koji odlučuje koliko će se svaki puta povećati vrijednost brojača.
Toliko za ovaj puta ( ne dajem mnogo primjera jer se programiranje najbolje uči uz vlastite ideje).

Python Škola:Moduli

Već smo dosta puta spomenuli da python ima mnogo ugrađenih funkcija,neke smo čak i koristili.Takve funkcije se učitaju čim pokrenemo python.Međutim, za Python su priređene i mnoge druge funkcije,koje se mogu koristiti u programskom jeziku python.Te funkcije su grupirane na temelju nekih zajedničkih svojstava u takozvane module.Kada u pythonu želimo koristiti neku dodatnu funkciju najprije je  moramo uvesti (importati)iz modula to ćemo učiniti posebnom komandom import.

Evo jednog jednostavnog primjera:Želimo izračunati drugi korijen do nekog broja  kako python nema ugrađenu funkciju sqrt (izracunavanje drugog korijena)morat ćemo ovu funkciju uvesti iz modula math.

Na gornjoj slici je prikazan pokušaj računanja drugog korjena bez uvoženja  modula math.

Na drugoj slici je prikazano pravilno uvoženje funkcije sqrt iz modula math,zatim je program uspješno izračunao drugi korijen od broja 25.

Uvoz funkcija iz određenih modula u Pythonu se može obaviti i na način da se umjesto imena funkcije stavi znak * koji simbolizira sve funkcije,dakle na ovaj način u python uvozimo sve funkcije iz određenog modula npr:

U modulu math definisan je i ludolfov broj pi koji će vam trebati ukoliko radite program koji zahtijeva izračunavanje površine i obima kruga.

MODUL random

Za generisanje slučajnih brojeva u nekom programu potrebne su funkcije iz modula random.Modul random sadrži funkcije kojima se mogu generisati slučajni brojevi te modelirati slučajne događaae.Funkcija randint (a, b) nam može poslužiti kao generator slučajnih brojeva

NPR:

Dobrodošli u novu školu pythona prošli puta smo naučili varijable i operatore pridruživanja,te kako te iste primjenjivati u programiranju.Danas nastavljamo sa pythonom i naučit ćemo šta su to relacijski operatori i kako možemo granati tok programa.

RELACIONI OPERATORI

Vrlo često u nekom programu moramo da uporedimo utipkane podatke,kako to nebi bio veliki problem i nedostatak Python kao i drugi programski jezici sadrži relacione operatore.Relacioni operatori upoređuju dva operanda.Rezultat usporedbe dva operanda može imati TRUE ili FALSE vrijednost.Lista relacionih operatora u pythonu:

> veće od

< manje od

>= veće od ili jednako

<= manje od ili jednako

== jednako

!= nije jednako

Već sa nekoliko puta spominjao da je jedan znak jednakosti operator pridruživanja npr. a=3.

Pogledajmo primjer:

Jasno je da nema smisla upoređivati parove brojeva čiji ishod nam je poznat.Zbog toga se u relacionom  izrazu obično pojavlju varijable čije se vrijednosti tokom izvođenja programa mijenjaju.

LOGIČKI OPERATORI I IZRAZI

Za stvaranje bilo kojeg složenog suda dovoljna su nam samo tri operatora,a to su and,or,not.Operator and obavlja operaciju I odnosno konjukciju,operator or obavlja operaciju ILI odnosno disjunkciju a not obavlja operaciju NE odnosno komplementiranje.

I  operacija daje rezultat True samo onda kada oba operandaimaju vrijednost True.Rezultat ILI

operacije jednak je True(odnosno 1) ako je samo jedan od operanada ima vrijednost True.
Operator negacije not djeluje ne jedan operand i invertuje True postaje False , False postaje True  njegovu vrijednost. Zbog toga operaciju negacije (komplementiranja) nazivamo još i inverzijom:

Primjer Inverzije

GRANANJE TOKA PROGRAMA (BLOKOVI NAREBI)

Često cemo se sretati sa naredbama za grananje toka kao što je if,prije nego pocnemo priču o if-u prikazat ću vam pseudo kod if naredbe

if uvjet then

{

naredba_1

….

naredba_n

}

else

{

naredba_2

….

naredba_m

}

To znači ako je uvjet ispunjen (logički izraz  istinit) obavit će se prvi blok naredbi, ako uvjet nije ispunjen (logički izraz je tačan) obavit će se drugi blok naredbi.Uobičajeno se kaže da se program grana na dvije grane. Pri izvršavanju programa obavit će se ili jedna ili druga grana. Iako ćemo često govoriti o grananju, taj naziv nije sasvim opravdan. Naime, grane nekog stabla, nakon što se račvaju iz debla ili drugih većih grana se više nigdje ne sastaju, dok se nakon obavljanja naredbi iz jednog ili drugog bloka, program u pravilu nastavlja zajedničkim dijelom.Blokovi naredbi se ograđuju vitičastim zagradama { }.

Ključne riječi za odabir blokova naredbi su : if,else ,elif iza ovih riječi se stavlja dvotačka.Primjer programa koji provjerava da li je unešeni broj djeljiv sa brojem 5.

print (‘Program će ispisati da li je uneseni broj djeljiv sa 5’)
broj = int(input(‘Unesi broj’))
if broj % 5 == 0:
print(‘broj %d je djeljiv sa pet.’ % (broj))
else:
print (‘broj %d nije djeljiv sa pet’ % (broj))

Za ovaj puta toliko nadam se da sam vas barem malo upoznati sa if,else,elif naredbama u python progrmskom jeziku.

Nastavljamo sa školom programskog jezika Python ovaj puta ću pisati o varijablama i znakovima pridruživanja u Pythonu.

Zamislite situaciju kada bi svaku vrijednost u jednom programu morali pamtiti;zvuči nemoguće!Ovaj problem je riješen uvođenjem varijabli.Varijable su imena koja će biti  pridružena nekim vrijednostima i njihovim kasnijim navođenjima moći ćemo te iste vrijednosti upotrijebiti kad god nam to zatreba.NPR.:>>> x= 100.Iz datog primjera se vidi da smo varijabli x pridružili cijeli broj pomoću operatora (znaka) Pridruživanja =,znak jednakosti u Pythonu,ali i općenito u programiranju i većini programskih jezika nema isto značenje,u matematici on označava da je vrijednost sa lijeve strane znaka jednakosti isto ko vrijednost sa desne strane znaka jednakosti.Tako x=x+5 u matematici nema nikakvog smisla,dok je u pythonu i drugim programskim jezicima vrlo smislena i korisna konstrukcija pogledajmo primjer:

 Dakle varijable čuvaju neke vrijednosti koje možemo koristiti kada nam se javi potreba da koristimo tu vrijednost.

PRAVILA IMENOVANJA VARIJABLI

U pythonu se varijable sastoje od proizvoljnog broja slova,donjih crtica i brojeva stim da ime varijable nesmije počinjati sa brojem.Već sam u prvom dijelu škole rekao da je python Case Sensitive jezik to znači da raspoznaje velika i mala slova,pa tako su y i Y dva razičita imena varijabli.U Pythonu postoje riječi koje nazivamo Key Words(Ključne riječi)ove riječi python koristi za svoje potrebei te riječi ne smije upotrebljavati programer kako bi imenovao neku varijablu,neke od tih riječi smo već spominjali npr.:int,bool,float,True,False.

Evo cijela lista KEY WORDS-a

None,continue, for, lambda, try ,True ,def, from ,nonlocal, while ,and ,del ,global, not, withas, elif, if, or, yield, assert, else, import, pass, break, except ,in raise.

Evo nekoliko primjera Varijabli:
x,x1,x2,x3,T,visina,Dubina itd.
Važno je napomenuti da x,x1,x2,x3 nisu parovi istih imena varijabli nego se radi o 4 različita imena varijabli.
PRIDRUŽIVANJE VRIJEDNOSTI
Najprostiji oblik pridruživanja vrijednosti nekoj varijabli u Pythonu je:
varijabla =  izraz pri čemu varijabla mora sadržati neko ime odabrano u skladu s pravilima imenovanja.Znak jednako predstavlja operator pridruživanja te će vrijednost(izraz) sa desne strane biti pridružena varijabli na lijevoj strani.
najprostiji oblik nekog izraza jeste samo jedna vrijednost.Tako npr napišemo li x = 2 vrijednost varijable pod nazivom x je 2 i varijabla x će pokazivati na cijeli broj 2.Istinski čitatelj mojih baljezgarija  će zaključiti da je varijabla x postala cijeli broj tj.postala je tipa int.Jedna od meni omiljenih prednosti pythona je ta što nemoramo kao u drugim jezicima unaprijed deklarisati varijable tj.odrediti tip;pa je tako tip varijable određen tipom vrijednosti na koju varijbla pokazuje.Varijabla može pokazivati na vrijednosti različitih tipova.
VIŠESTRUKO PRIDRUŽIVANJE VRIJEDNOSTI
U pythonu je moguće da se sa jednom naredbom dodati više vrijednosti nekim varijablama.
NPR:
varijabla_1, varijabla_2 =  izraz_1, izraz_2 
Toliko za ovaj dio škole nadam se da vam varijable više nisu nepoznat pojam te se iskreno nadam da ste shvatili kako se varijablama pridružuju vrijednosti.

Evo nas ponovo u školi programiranja.U ovom dijelu škole ćemo naučiti sve o tipovima podataka koji se koriste u programskom jeziku Python.U prošlom djelu škole smo nabrojali tipove podataka koje python koristi a to su:

*Cjeli brojevi (Integer)
*Realni Brojevi (sa pomičnim zarezom) Float
*Boolean ili logički podaci (samo True ili False)
*Znakovni niz ili sting
Pa počnimo onda
CIJELI BROJEVI
Naziv cijelih brojeva u pythonu je int(SKRAĆENO OD INTEGER).U mnogim  programskim jezicima veličina cijelih brojeva je ograničena brojem bajta koji su predviđeni za njihovo smještanje u memoriju.U programskom jeziku python imamo drugačiju situaciju,naime python nema ograničenje broja znamenki za cijele brojeve.To znači da možemo pisati:
Svako ko je imalo upućen u informatiku zna da računara barata samo sa binarnim brojevima.Vrlo rijetko će možda biti prikladnije int tj.cijeli broj utipkati u binarnom obliku.To ćemo uraditi tako što ispred binarnog broja napišemo 0b (nula b)
Kao što vidimo na slici python vrši konverziju binarnih u decimalne brojeve.
Poznato je da se nizovi bitova često upisuju i Heksadecimalnom obliku(0,1,2,3,4,5,6,7,8,9,A,B,D,E,F).
Ispred Heksadecimalnih brojeva treba pisati 0x (nula x).Tako će npr: 0xF0 biti 240 a 0x0F biti 15.
Također u pythonu je moguće i utipkani cijeli broj prevesti u binarni ili hexadecimalni,a tu pretvorbu će izvršiti Pythonove ugrađene funkcie bin() i hex().Pogledajmo primjer:
REALNI BROJEVI
Realni brojevi se u računar upisuju prema međunarodnom standardu IEEE 754 u formatu sa pomičnom tačkom (floating point numbers) iz čega je nastao naziv float koji označava realne brojeve.Prilikom upisivanja realnog broja moramo koristiti decimalnu tačku po kojoj python prepoznaje da se radi o float tipu.
LOGIČKI TIPOVI PODATAKA
Logički ili bool tipovi podataka su naziv dobili po britanskom matematičaru Geoorgu Boolu.Ovi tipovi nam služe za provjeravanje logičke istine ili neistine.U pythonu se ova vrsta podaka naziva bool i može imati samo dvije vrijednosti : True i False.Važno je napomenti da je Python case sensitive jezik a to znači da razlikuje mala i velika slova pa tako True nije isto što i true.

Kada napišemoTrue i False Python će ispisati  logičke vrijednosti.Ali, kada te iste riječi napišemo malim početnim slovima
Python ih ne prepoznaje kao vrijednosti logičke varijable i misli da su to imena.Python ima i ugrađene funkcije int() i bool() pomoću kojih možemo ustanoviti cjelobrojnu vrijednost neke logičke vrijednosti,npr:
Iz ovoga zaključujemo da sve vrijednosti različite od nula imaju logičku vrijednost True tj.samo nula ima vrijednost False.
STRING ILI TI ZNAKOVNI NIZ
Osnovni tip podataka za prikaz teksta je String.U pythonu se taj tip naziva str.Vrijednost stringa u pythonu se označava jednostrukim ili dvostrukim navodnicima preporuka je da se koriste jednostruki navodni znaci,te da se dvostruki koriste samo ondje gdje je potrebno naglasiti navođenje.Primjer:
Mala napomena:Dvostruki navodnik se nesmije pisati kao dva uzastopna jednostruka navodnika.
U pythonu postoji i funkcija print() koja na ekranu računara ispisuje riječi koje nisu omeđene navodnicim.
NPR:
>>>print (‘ Ja volim Python ‘)
>>> Ja volim Python
U Pythonu također postoje i znakovi za oblikovanje teksta kao npr.prelazak u novi red itd.
\n služi za prelazak u novi red
\t tabulator služii za pomak teksta
\\ ispis lijeve kose crte
\’  ispis jednostrukog navodnika
Ukoliko u pythonu napišemo tri navodnika jedan iza drugog imamo mogućnost pisanja teksta kako želimo.
PYTHON KAO KALKULATOR
Python se vrlo lako može koristiti kao kalkulator na našim prostorima poznatiji kao “DIGITRON” Potrebno je upisati neki Operand (float ili int) i neki operator (+,-,*,/) i opaliti po Enteru.
npr.:
>>> 2+2
4
>>>((11 * 24 + 13) * 60 + 46) * 60 + 40
1000000
Tolikood mene za sad.

Python Škola

Napokon sam se i ja odlučijo  da napišem malu školu programiranja kao što je navedeno u naslovu pokušat ću vas naučiti osnove programiranja i osnove Python programskog jezika.

UVOD U PROGRAMIRANJE

Računari i računarski programi potrebni su nam za rješavanje raznih zadataka koji se pojavljuju u životu i radu. Zadaci koji se rješavaju računarom mogu biti vrlo jednostavni i lako razumljivi, ali također i jako složeni.

 Prije nego što počnemo pisati neki program treba dobro razumjeti problem koji zelimo riješiti i osmisliti postupak njegovog rješavanja. Pokazalo se razumnim posao priređivanja programa za rješavanje zadanog problema podijeliti unekoliko koraka a to su:
 Analiza zahtjeva
Specifikacija problema
Odabir algoritama i zasnivanje programa
Pisanje programa
Testiranje ili ispitivanje programa
Održvanje programa.
Iz ovoga  možemo zaključiti da je programiranje riješavanje određenih problema pomoću računara.
ALGORITMI

Riječ algoritam dolazi od imena arapskog matematičara Muhamed ibn Musa al Horezmi  koji je živio u IX. stoljeću. On je razradio i u posebnoj knjizi opisao pravila provođenja  aritmetičkih operacija sa brojevima zapisanim u decimalnom zapisu.

 Upočetku su algoritmima nazivana samo pravila računanja sa brojevima zapisanim u decimalnom sistemu, da bi se kroz stoljeće taj naziv počeo
upotrebljavati za pravila obavljanja raznih zadataka. U dugom vremenskom
razdoblju, sve do sredine dvadesetog stoljeća, taj su naziv upotrebljavali samo matematičari, ali s pojavom računara pojam se rasprostranio, najprije u područje računarstva, a zatim i u druge djelatnosti, pod pojmom algoritma
podrazumijevamo tačno opisana pravila za postizanje željenog rezultata i ostvarivanje određenog cilja.Algoritam možemo posmatrati kao kuhinjski recept gdje su nam detaljno opisane sastojci i radnje koje trebamo izvršiti kako bi napravili neko jelo.
UPOZNAVANJE SA PYTHONOM

Python logo

Python je interpreterski programski jezik opće namjene kojeg je stvorio  Guido van Rossum 1990. godine.Filizofija pythona se bazira na tome da stvori što čitljiviji kod. Python tvrdi da kombiniraju “izuzetnu snagu s vrlo jasnom sintaksom”.Python podržava više programskih paradigmi (Paradigma:stil programiranja).Ime python-a je nastalo po uzoru na popularnu seriju Leteći cirkus monty pythona.Programski jezik python je najviše zastupljen na Gnu/Linux OS,ali postoje i verzije za druge platforme što znači da je multi platformski jezik.Python je uspješno ugrađen u više softverskih proizvoda kao skriptni jezik, uključujući i softver za 3D animacije kao što su Blender,Cinema 4D,Lightwave, Houdini, Maya, modo, MotionBuilder, Softimage.Među korisnicima pythona su i Youtube koji je kodiran u pythonu i Originalni BitTorent klijent.
Za Pisanje i testiranje programa nam je potrebno razvojno okruženje IDE (Integrated Development Environment)u kojem ćemo pisati programe.Prilikom instalacije pythona kojeg možete preuzeti na ovom LINKUautomatski će se instalirati i razvojno okruženje za python kojeg je Guido van Rossum nazvao IDLE po liku iz već pomenute igrane komične serije Monthy Python koji se zove Eric Idle.Kada pokrenete IDLE  Pojavit će se uobičajeni interaktivni interfejs kao u većine drugih prozora, naslov tog prozora je PythonShell.

Python Shell Prozor

>>>“znak očekuje od korisnika unos nekog niza znakova,zavisno o utipkanom odgovoru python će reagovati tako da obavi neku akciju,eventualno ispiše neki sadržaj i ponovno u novom redu ispiše “>>>“. Interfejs dakle, omogućuje interaktivni rad.

OSNOVNI TIPOVI PODATAKA

Kako računarski programi obrađuju podatke tako i python treba neke podatke koje će obrađivati Pojedinačni podatak nazivat ćemo

vrijednošću(engl.value). Svaka vrijednost u Pythonu je određnog tipa.Nazivi vrijednost i tip upotrebljavaju se u proceduralnim jezicima.  Sobzirom da Python podržava i proceduralnu i objektnu paradigmu( način
programiranja) treba spomenuti da se u objektno orijentiranom programiranju umjesto tipa pojavljuje pojam klase a umjesto vrijednosti naziv objekt.Dakle vrijednost je jedna jedinka određenog tipa podataka.
Osnovni tipovi podataka U pythonu su:
*Cjeli brojevi (Integer)
*Realni Brojevi (sa pomičnim zarezom) Float
*Boolean ili logički podaci (samo True ili False)
*Znakovni niz ili sting
Toliko u ovoj lekciji Python škole.