Booleova logika i strukture odlučivanja
Booleove varijable
Booleove varijable
-
bool tip podatka: tip podataka koji može uzeti jednu od dvije moguće vrijednosti (iz Booleove algebre):
-
True
-
False
-
- Vrijednosti True i False su doslovne vrijednosti (sirovi podaci, eng. literals) bool tipa
- Booleova varijabla: varijabla koja čuva podatak bool tipa
# naziv varijable = vrijednost
true = True
false = False
false = True
x = False
Booleove varijable
Booleove varijable
Booleove varijable
Booleovi izrazi
Booleovi izrazi
- Izraz: sastoji se od operatora i operanda
Booleovi izrazi
-
Booleov izraz: bilo koji izraz koji vraća vrijednost koja je ili True ili False
- može se dodijeliti Booleovoj varijabli
# varijabla = izraz
varijabla = a < b
Operatori poređenja
Poređenje float-point vrijednosti
Logički operatori
-
Logički operatori: operatori koji se mogu koristiti za pravljenje kompleksnih Booleovih izraza
-
and operator i or operator: binarni operatori, povezuju dva Booleova izraza u složeni Booleov izraz
-
not operator: unarni operator, mijenja istinu Booleovog operanda
-
Logički operatori
and operator
-
Uzima dva Booleova izraza kao operande
- Kreira složeni Booleov izraz koji je tačan samo ukoliko su oba podizraza tačna
Izraz | Rezultat |
---|---|
False and False | False |
False and True | False |
True and False | False |
True and True | True |
or operator
-
Uzima dva Booleova izraza kao operande
- Kreira složeni Booleov izraz koji je tačan samo ukoliko je bar jedan od podizraza tačan
Izraz | Rezultat |
---|---|
False or False | False |
False or True | True |
True or False | True |
True or True | True |
not operator
-
Uzima Booleov izraz kao operand
- Mijenja logičku vrijednost tog operanda
- Nekada je potrebna upotreba zagrada da bi se razjasnilo nad kojim operandom se upotrebljava operator
Izraz | Rezultat |
---|---|
not False | True |
not True | False |
Skraćeno izračunavanje
Skraćeno izračunavanje
-
Skraćeno izračunavanje: donošenje odluke o složenom Bulovom izrazu nakon procjene jednog podizraza
- Izvršavaju ga or i and operatori
- or operator: ukoliko je lijevi operand tačan, evaluira lijevi oprand; u suprotnom, evaluira se desni operand
- and operator: ukoliko je lijevi operand netačan, evaluira se lijevi operand; u suprotnom, evaluira se desni operand
>>> False and 3/0
False
Uvod u strukture odlučivanja
Uvod u strukture odlučivanja
- Upravljačka struktura (eng. control structure): logički dizajn koji kontroliše redoslijed u kojem će se izvršiti skup naredbi
- Sekvencijalna struktura (eng. sequence structure): skup naredbi koje se izvršavaju u redoslijedu u kojem se pojavljuju
Dijagram toka
if naredba
if naredba
-
Struktura odluke: skup naredbi se izvršava samo ukoliko je ispunjen postavljeni uslov
- naziva se i struktura izbora
- Naredbe se izvršavaju uslovno
- izvršavaju se ukoliko je uslov tačan
-
Struktura odluke sa jednom alternativom: omogućava samo jednu alternativnu putanju izvršavanja
-
ukoliko uslov nije tačan, izlaz iz strukture
-
if uslov:
naredba
naredba
if naredba
- Prva linija se naziva if odredba (eng. if clause)
- Uključuje ključnu riječ if, iza koje slijedi uslov (eng. condition)
- Uslov može biti tačan ili netačan
- Prilikom izvršavanja if naredbe, uslov se provjerava, pa ukoliko je tačan blok naredbi se izvršava; u suprotnom, blok naredbi se preskače
- Blok je skup komandi koje su grupisane zajedno
- U Pythonu se blok kreira uvlačenjem linija koda
if uslov:
naredba
naredba
if naredba
- U dijagramu toka, romb predstavlja uslov tačno/netačno koji se mora provjeriti
if naredba
if naredba
if naredba
if naredba
if naredba
if-else naredba
if-else naredba
-
Struktura odluke sa dvije alternative: dvije moguće putanje izvršavanja
- Kreće se jednom putanjom ukoliko je uslov tačan, a drugom ukoliko je netačan
-
if uslov i else uslov moraju biti poravnani
-
Naredbe se moraju uvlačiti dosljedno
if uslov:
naredba
naredba
else:
naredba
naredba
if-else naredba
if-else naredba
if-else naredba
if-else naredba
if-else naredba
if-else naredba
Poređenje stringova
Poređenje stringova
- Stringovi se mogu uporediti koristeći operatore == i !=
- Poređenje stringova pravi razliku između velikih i malih slova
- Stringovi se mogu uporediti koristeći operatore >, <, >=, i <=
- Upoređuje se znak po znak na osnovu vrijednosti u ASCII tabeli
-
Ukoliko se upoređuju dvije riječi gdje je jedna riječ početak druge onda je duža riječ veća od kraće riječi
>>> "abc" > "ab"
True
Poređenje stringova
Poređenje stringova
Poređenje stringova
Umetnute strukture odlučivanja
Umetnute strukture odlučivanja
Umetnute strukture odlučivanja
- Važno koristiti ispravno uvlačenje linija prilikom upotrebe umetnutih struktura
- Važno za Pythonov interpreter
- Poboljšava čitkost koda
- Pravila za pisanje umetnutih if naredbi:
-
else odredba treba biti poravnana sa odgovarajućom if odredbom
-
Naredbe u svakom bloku trebaju biti dosljedno uvučene
-
Umetnute strukture odlučivanja
Umetnute strukture odlučivanja
Umetnute strukture odlučivanja
Umetnute strukture odlučivanja
Umetnute strukture odlučivanja
if-elif-else naredba
-
if-elif-else naredba: posebna verzija strukture odluke
- Pojednostavljuje logiku i pisanje uvučenih struktura odluke
- Može uključivati više elif naredbi
if uslov:
naredba
naredba
elif uslov:
naredba
naredba
else:
naredba
naredba
if-elif-else naredba
- Poravnavanje prilikom upotrebe if-elif-else naredbe:
- if, elif, else odredbe su jednako poravnane
- Blokovi koji se uslovno izvršavaju moraju biti poravnani dosljedno
- if-elif-else naredba nikada nije neophodna, ali je lakše pratiti njenu logiku
- Alternativa su uvučene if-else naredbe
- Kod postaje komplikovan i uvučene linije mogu prouzrokovati problematičnu dužinu liniju
Programiranje I - P03
By Elmedin Selmanovic
Programiranje I - P03
- 877