4,231 pregleda

Serijal tekstova: Zajedno naučimo Python (4. dio) – Selekcije

3

Pozdrav svima! Ovo je četvrti tutorial iz Pythona, a ovo su stvari koje trebate znati: naredba za ispis je print(), “=” je znak pridruživanja vrijednosti varijabli. Postoji više načina ispisa (poželjno da znate barem jedan), a aritmetičke operatore ste obavezni znati. Ako ste naoružani ovim znanjem, spremni ste za ovaj tutorial. ;-)

Dosad smo u programima koristili aritmetičke operatore. Međutim, što učiniti ako trebamo u programu uspoređivati više vrijednosti? Tu nam pomažu operatori uspoređivanja. Ima ih nekoliko, također ih već znate iz matematike, ali u matematici se oni pišu malo drugačije u odnosu na Python. U nastavku se nalazi prikaz operatora.

Značenje

Oznaka u matematici

Oznaka u Pythonu

Manje od

<

<

Veće od

>

>

Manje ili jednako

<=

Veće ili jednako

>=

Jednako

=

==

Različito

!=

NAPOMENA: Pazite na razliku između “=” i “==”. Znak “=” je znak pridruživanja koji služi da se neka vrijednost pridruži varijabli, dok znak “==” predstavlja operator uspoređivanja koji je istinit ako su uspoređene vrijednosti jednake.

Također, mnoge zna buniti kako se piše manje ili jednako i veće ili jednako. Radi se o tome da neki često zamijene poredak; prvo stave znak “=”, a onda znak “<” ili “>”. Da bi vam bilo lakše, piše se onako kako se i čita. Npr. “MANJE ili JEDNAKO”, odnosno “<=”. Isto vrijedi za veće ili jednako.

Nakon što smo to usvojili, možemo dalje. Naime, u programu mogu postojati točke u kojima se program grana na više mogućih rješenja ovisno o uvjetu. To nazivamo selekcijom. Selekcija koju ćemo naučiti je selekcija tipa if (i njezine varijacije).

Evo primjera iz stvarnog života; dođemo u dućan građevinske robe i kupujemo sve što nam treba za fasadu. Na kraju kupnje dođemo na blagajnu i u slučaju iznosa većeg od 5000 kn imamo pravo na besplatnu dostavu što se ispisuje na račun. Upravo ćemo ovaj zadatak riješiti, ali ćemo ga malo pojednostaviti. Kako ne bismo unosili svaku stavku posebno, unijet ćemo samo konačnu vrijednost kupovine, a program nam treba ispisati: vrijednost računa, pravo na dostavu (samo u slučaju vrijednosti računa većeg od 5000 kn) te prigodnu rečenicu (“Dođite nam opet!”).

 Sintaksa za if:

if uvjet:
blok naredbi

Python 04 - slika 1

Kao što vidite na slici, if selekcija sastoji se od ključne riječi if, uvjeta i nakon toga slijedi znak “:”. Važno je nakon toga naglasiti da sve što spada pod selekciju se nalazi uvučeno i to će se izvršiti samo ako je uvjet zadovoljen. Kao uvlaka se mogu koristiti razmaci ili tab, ali se preporučuje tab i to uređen kao četiri razmaka. Također, miješanje razmaka i taba nije preporučljivo, odnosno, od verzije 3 je i onemogućeno. Ovo je zapravo i zanimljivost Pythona, a cilj je pisanje “lijepog” koda. I za kraj, molim vas, nemojte se igrati s razmacima, jer samo razlika u jednom razmaku neće dopustiti da se program izvrši onako kako ste zamislili tj. javit će vam grešku.

Naravno, to je najjednostavnije korištenje if selekcije. Sada zamislimo sljedeći slučaj. Došli smo u školu ili na fakultet i trebamo napraviti program koji će nam ispisivati da li smo prošli ili pali ispit. To ćemo učiniti tako da napravimo program koji će u slučaju ocjene 1 ispisivati “Niste položili ispit.”, a za ostale slučajeve ispisivati “Položili ste ispit! Čestitam! :)”.

 Sintaksa za if-else:

if uvjet:
blok naredbi
else:
blok naredbi

Python 04 - slika 2

Kao što vidite na slici, ovdje nalazimo složeniji tip if selekcije gdje opet imamo normalnu sintaksu za if dio, dok za sve preostale slučajeve pišemo ključnu riječ else, ali nakon toga ne dolazi uvjet nego samo znak “:”.

Ipak, zamislimo da radimo program za nekog malo zahtjevnijeg korisnika, koji želi da se ispisuje ocjena i poruka. Onda naš program izgleda ovako:

Sintaksa za if-elif-else:

if uvjet:
blok naredbi
elif uvjet:
blok naredbi
else:
blok naredbi

Python 04 - slika 3

Vidimo ovdje malo drugačije napisanu if selekciju. Imamo prvo if dio, a zatim ključnu riječ elif iza koje slijedi uvjet i nakon toga znak “:”. Ovakav način if selekcije se koristi kada imamo složenije zadatke gdje ima više različitih mogućnosti završetka zadatka kakav je i ovaj (korištenje više elif-a). I, naravno, na kraju se nalazi else dio koji se ispisuje ako nijedan od prije navedenih uvjeta nije ispunjen.

Sada smo prošli selekciju if i njene varijacije. Međutim, u programiranju se znaju javljati zadaci koji zahtijevaju da neki uvjeti budu povezani tako da se zadatak izvrši samo ako su oba uvjeta zadovoljena i sl. Tu na scenu stupaju logički operatori. Logički operatori su operatori koji ovisno o uvjetu vraćaju True (istinu) odnosno logički 1 i False (laž) odnosno logičku 0. U Pythonu postoje logički operatori and (i), or (ili) i not (ne).

Logički operator and je operator koji vraća vrijednost True (istinu) ako i samo ako su svi uvjeti istiniti (zadovoljeni). U suprotnome će vraćena vrijednost biti False (laž).

Tablica istinitosti (and)

False (0) and False (0)

False (0)

False (0) and True (1)

False (0)

True(1) and False (0)

False (0)

True (1) and True (1)

True (1)

Logički operator or je operator koji vraća vrijednost True (istinu) ako je barem jedan uvjet istinit (zadovoljen). Ako nijedan uvjet nije istinit, vraćena vrijednost biti će False (laž).

Tablica istinitosti (or)

False (0) or False (0)

False (0)

False (0) or True (1)

True (1)

True(1) or False (0)

True (1)

True (1) or True (1)

True (1)

Logički operator not je operator negacije, odnosno, za svaku vrijednost True (istina), on vraća False (laž) i obrnuto.

Tablica istinitosti (not)

False (0)

True (1)

True (1)

False (0)

Naravno, iz toga proizlazi da postoji i tip varijable koji sadrži logičke vrijednosti True odnosno False. Takav tip varijable naziva se boolean ili kraće bool. Koristimo ga ako želimo provjeriti da li se je neka radnja ili stanje unutar programa promijenilo.

Da bismo vidjeli kako rade logički operatori, razmotrimo ovakav zadatak; trebamo napraviti program gdje će korisnik upisati vrijednost između 0 i 20, a ako se broj nalazi unutar intervala 1 i 4 i intervala 16 i 20, ispisat će se “Pogođena su oba intervala!” i to ćemo napraviti pomoću operatora and, a ako se nalazi samo unutar jednog intervala, ispisat će se “Pogođen je jedan interval!” što ćemo napraviti pomoću operatora or.

Python 04 - slika 4

Treba reći da smo ovdje naišli na zagrade, ali ne brinite jer je sve isto kao i kod aritmetičkih operatora. Prvo se rješava ono unutar zagrade, a zatim se rješava ostalo. Tako se i u ovom primjeru prvo gleda prva zagrada odnosno da li je upisana točka u prvom intervalu, a zatim se to isto gleda za drugi interval u drugoj zagradi. Nakon toga se, ovisno o njihovoj istinitosti i operatoru između zagrada, vraća vrijednost True ili False za cijeli uvjet.

Ovaj zadatak mogli smo riješiti i tako da koristimo varijable tipa boolean gdje zapravo spremamo vrijednost True ili False za svaki interval, a u nastavku vam je prikazan program riješen upravo tako:

Python 04 - slika 5

Ovim zadatkom smo došli do kraja tutoriala. Kako biste ostali u formi i savladali današnje gradivo, u nastavku vam se nalaze 3 zadatka pa ih pokušajte riješiti:

  1. Napišite program koji traži unos broja (1-7) od strane korisnika. Neka se za upisani broj ispiše dan u tjednu (npr. za broj 6 neka se ispiše “Subota”), dok u slučaju unosa broja koji nije u intervalu (1-7) ispisuje poruku “Uneseni broj ne predstavlja dan u tjednu!”.
  2. Napišite program koji dijeli dva broja i ispisuje rezultat. U slučaju unosa nule (0) kao drugog broja, neka se ispiše poruka: “S nulom nije dopušteno dijeliti”.
  3. Napišite program gdje korisnik unosi jedan broj u intervalu od 1 do 100. Ako je broj paran i nalazi se u intervalu između 1 i 50 ispisuje se poruka “Paran i manji od 50!”. Ako je broj neparan i nalazi se u intervalu od 51 do 100, neka se ispiše poruka “Neparan i veći od 50!”. U slučaju svih drugih kombinacija, neka se ispisuje poruka: “Pokušajte ponovo!”.
    Pomoć: Za određivanje broja da li je paran ili neparan koristite aritmetički operator za modularno dijeljenje “%”.

Do sljedećeg puta,

Nikola

VN:F [1.9.22_1171]
Rating: 5.0/5 (9 votes cast)
Serijal tekstova: Zajedno naučimo Python (4. dio) - Selekcije, 5.0 out of 5 based on 9 ratings

Povezani članci:

Objavljen Full Circle- sp...
Hack the shell drugi dio ...
GRUB ne prepoznaje moj op...
Serijal tekstova: Zajedno...
Serijal tekstova: Zajedno...

3 Responses

  1. wintermute kaže:

    pohvale..
    :)

  2. igor kaže:

    jos jedan odlican tekst. prijedlog: mozda da se naslov promjeni u osnove programiranja uz python ili slicno posto se u svim serijalima opisuju stvari koje ne znaju jedino oni koji se nikad nisu susreli s bilo kakvih programiranjem.

  3. Stanislav kaže:

    Sve pohvale za serijal! Nisam se nikada bavio ovakvim stvarima i prija mi ovaj tempo i na?in obja?njavanja.

Ostavi komentar

© 2014 Linux Za Sve. | Impressum | Sadržaj je licenciran pod CC-SA-3.0 ako nije drugačije naznačeno.
Proudly designed by Theme Junkie.