Latest Entries »

Yahoo mailto popup

Poslednjih nedelju dana Yahoo je resio da nervira svoje korisnike dosadnim popupom koji nametljivo sugerise da ga dodate medju aplikacije za slanje mailova. U koliko potvrdite, Yahoo ce biti dodan u Tools > Options > Applications. Ali pretpostavimo da ovo ne mozete ili ne zelite da uradite. Jedan od nacina kako da zaustavite ovaj popup je kreiranje / editovanje userChrome.css fajla.

1) Pronadjite profile folder za vas browser. Po defaultu se nalazi u:

c:/Documents & Settings/<username>/Application Data/Mozilla

Najlaksi nacin da dodjete do njega pod Winom je: Start > Run i upisite “%APPDATA%\Mozilla\”. Zatim udjite u zeljeni Mozilla browser (npr. Firefox) > Profiles > default profil.

2) U profil folderu kreirajte najpre folder ‘chrome’, zatim u njemu kreirajte fajl userChrome.css i upisite sledeci code u njega >

@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);

notification[value="Protocol Registration: mailto"] {
  display: none !important;
}

Napomena: U koliko vec imate folder chrome i fajl userChrome (malo verovatno), jednostavno dodajte notification instrukciju ispod namespace definicije u postojecem fajlu.

3) Snimite userChrome.css, restartujte Firefox i probajte da otvorite Yahoo ili drugi problematicni mail. Videcete da je popup nestao.

Napomena: U koliko koristite portabilni FireFox, profilni folder cete naci u >

FirefoxPortable > Data > profile

Zatim odatle pristupite koracima 2) i 3).

Inace, isplati se prouciti userChrome, jer omogucava zanimljiva fina podesavanja FireFoxa. Takodje, drugi i verovatno bolji nacin da radite isto ovo je preko extenzije Stylish.

GIMP uputstvo

darthewok:

Uputstvo za Gimp na srpskom jeziku.

Originally posted on Učimo informatiku 2:

Uputstvo za GIMP

GIMP

View original

OpenHardwareMonitor

Besplatni Open Source program za pracenje parametara sa maticne ploce. Pre svega temperature, fan brzine, napajanja i takta (clock speed). Podrzava veliki broj tipova hardware senzora, i po mnogo cemu podseca na CPUID-ov HwMonitor.

Code je otvoren i dostupan po Mozilla licenci. Vise informacija kao i download mozete naci na sajtu proizvodjaca ovde.

Kompanija MS poznata je po tendenciji sprecavanja korisnika da svoj kompjuter koriste po sopstvenoj zelji. Poslednji izdanak ove politike je primoravanje Skype korisnika da izvrse upgrade i predju sa v4 na neku noviju. Ovde je narocito zanimljiv nacin kako je to uradjeno.

Naime, dok ne pozelite da reinstalirate Skype ili ne napravite novu instalaciju sve ce biti u redu. Ali cim ovo uradite, starija verzija jednostavno nece moci da se poveze. Zanimljivo je da tehnicka podrska tvrdi kako pojma nema o cemu se radi, i preporucuje upgrade jer v5 & v6 rade bez problema. Ono sto zaboravljaju da pomenu su brojni bagovi, nedoslednosti i problemi kojima nove verzije ovog programa obiluju.

Ovde cemo navesti dva nacina kako mozete jos uvek koristiti stariji Skajp u koliko to zelite:

1) Bolje spreciti. U koliko zelite da reinstalirate Skype, obavezno sacuvajte fajl shared.xml. Naci cete ga u Skype folderu u App Data, koji se po defaultu nalazi ovde >

C:\Documents and Settings\<username>\Application Data\Skype

Nakon reinstalacije jednostavno vratite ovaj fajl na svoje mesto u novoj instalaciji.

2) Druga opcija je, instalirajte bilo koji noviji Skajp, konektujte se na vas nalog, zatim ga deinstalirajte ali nemojte nista drugo da menjate. Onda jednostavno instalirajte stariju verziju Skajpa.

Po zelji mozete nakon ovoga sacuvati novi shared.xml, zatim detaljno deinstalirati Skajp ukljucujuci sve foldere i registre, reinstalirati cisti Skype v4 i vratiti shared.xml u Skype folder u App Data.

Ovo nije neophodno zato sto Skajpov deinstall u principu dobro radi posao.

Navescemo i linkove verzija koje vam mogu biti od pomoci. Novije koje rade sa nesto manje bagova od ostalih su:

v5.10.0.116 ; v6.1.0.129 & v6.3.0.107

Takodje, ako koristite WinXP SP2, bez zelje da upgradujete na SP3, poslednja verzija koja ce vam raditi je v6.6.0.106.

Od starijih verzija, poslednja v4.2 nije vise dostupna na zvanicnom sajtu, ali je mozete skinuti sa arhivskih sajtova, recimo ovde. MD5 je: 3440548d69923b0fa0c81633576ea91e. Druga provereno dobra starija verzija je poslednja v4.1 koju mozete skinuti ovde. MD5 je: 2ac7e534adb21e8d212608770e0f0b4c. Hashevi se lako proveravaju sa WinMd5Sum.

Na kraju bitna napomena. Kada uradite downgrade obavezno iskljucite autoupdate. Takodje, svi metodi opisani ovde rade u trenutku pisanja texta. Dokle ce tako biti, ostaje da se vidi.

Python: Funkcije, praksa

U poslednjem textu mini-serijala o funkcijama pokazacemo njihovu primenu u praksi na primeru Cezar enkripcije. Ovo ce ujedno biti demonstracija pojedinih naucenih koncepata, kao i optimizavanog i pomalo minimalistickog stila u programiranju.

Najpre da se podsetimo sta smo do sada naucili. U prvom textu obradili smo osnovne elemente Python funkcije. U drugom smo radili na osobinama funkcija kroz primere. U trecem smo naucili dva trika za povecanje produktivnost. I u zavrsnom sumiramo nauceno kroz praksu.

Ovaj kratak program je napisan tokom izvanrednog IHTS kursa, koji svima preporucujem. Cezar cypher je jednostavan sistem enkripcije koji je dobio naziv po Juliju Cezaru jer ga je primenjivao tokom vojnih operacija za razmenu poruka. Radi se o jednostavnoj zameni slova za slovo po nekom kljucu koji definise za koliko je mesta pomeren alfabet u kriptovanom textu. Detaljno objasnjenje mozete naci na wikipediji ovde. Poznat primer ove enkripcije je cuveni ROT13 u kome je Engleski alfabet podeljen na pola. On je bio jako popularan na starim news grupama i jednostavnu demonstraciju mozete videti ovde.

Da predjemo na posao. U IDLE Editoru iskopirajte i pokrenite sledeci code:

def cea(s,x):
    a = ''
    for n in s:
        if n.isalpha():
            b = chr((ord(n.lower())+x-97)%26+97)
            if n.isupper():
                a += b.upper()
            else: a += b
        else: a += n
    print(a)

def uncea(s,x): cea(s,-x)

def brutc(s):
    for n in range(25):
        print('Key',n+1,'Text:')
        uncea(s,n+1)

#Examples:

#cea('Simple is better than complex.',5)
#brutc('Mywzvoh sc loddob drkx mywzvsmkdon.')
#uncea('Lyuxuvcfcns wiohnm.',20)

Kratko objasnjenje: Funkcija Cea pomera text za faktor x, cime ga enkriptuje. Uncea poziva Cea ali sa obrnutim faktorom, cime ga vraca nazad u alfabetu za onoliko mesto koliko je bio pomeren tokom enkripcije. I Brutc jednostavno izlistava svih 25 mogucnosti pomerenog texta za Engleski alfabet. Onda je lako videti koji od njih ima smisla, a time i koji je kljuc koriscen.

Testirajmo nas program u shellu:

>>> cea('Simple is better than complex.',5)
Xnruqj nx gjyyjw ymfs htruqjc.
>>> uncea('Lyuxuvcfcns wiohnm.',20)
Readability counts.
>>> brutc('Mywzvoh sc loddob drkx mywzvsmkdon.')
[...]
Key 10 Text:
Complex is better than complicated.
[...]

Opciono za kraj mozete probati brutc funkciju za sledeci cypher:

'Sw lzcowu xili, aiu c riuc swxi.'

Dobicete remix verziju jedne nase poslovice. :)

Inace, primeri koje smo koristili predstavljaju neke od osnovnih principa Pythona. Njih je napisao Tim Peters u svom textu The Zen of Python. U koliko zelite da procitate integralnu verziju texta sa svim principima, mozete koristiti poznati Python Easter Egg.

Kucajte u IDLE Shellu:

>>> import this

Na kraju treba dodati da Cezar shift vise nije u upotrebi jer se smatra nesigurnim. Dovoljno je pronaci kljuc na osnovu dela texta i onda je lako dekriptovati kompletan sadrzaj. Medjutim, gotovo je idealan za ucenje programiranja i demonstraciju jednostavne enkripcije.

Ovim zavrsavamo mini-serijal o funkcijama. Srecno u novim Python avanturama.

U proslom textu obradili smo neke osobenosti funkcija kroz nekoliko primera. Danas cemo objasniti dva trika kojim vase funkcije mozete uciniti korisnijim.

1) Docstring – Pomocne informacije u funkcijama.

Sve ugradjene funkcije u Pythonu imaju svoj kratak help. Ako zelite da ih vidite, kucajte u Shellu:

>>> dir(__builtins__)

Dobicete listu svih standardnih funkcija u Pythonu. Sada ako zelite da dobijete vise informacija o njima, mozete koristiti komandu help. Pokusajte recimo sledece:

>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

Ili:

>>> help(input)
Help on built-in function input in module builtins:

input(...)
    input([prompt]) -> string

    Read a string from standard input.  The trailing newline is stripped.
    If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
    On Unix, GNU readline is used if enabled.  The prompt string, if given,
    is printed without a trailing newline before reading.

Docstring metod nam omogucava da isto to uradimo sa nasim funkcijama. Upisuje se unutar tri znaka navoda, odmah iza imena funkcije a pre akcije. Pogledajmo to na primeru naseg konvertora iz prethodnog texta. Da se podsetimo, on izgleda ovako:

def face(fa):
    return (fa-32)*5/9

def cefa(ce):
    return ce*9/5+32

Otvorite ga u IDLE editoru i preradite da izgleda npr. ovako:

def face(fa):
    """
    (num) -> float
    Za unetu temperaturu u Farenhajtima,
    vraca vrednost u Celzijusima.
    """
    return (fa-32)*5/9

def cefa(ce):
    """
    (num) -> float
    Za unetu temperaturu u Celzijusima,
    vraca vrednost u Farenhajtima.
    """
    return ce*9/5+32

Snimite ga, izvrsite (F5) i u IDLE Shellu testirajte:

>>> cefa(31)
87.8
>>> face(90)
32.22222222222222

Vec i prilikom kucanja videcete da vam Shell nudi objasnjenje koji tip unosa funkcija ocekuje. Sada testirajte help na vasim funkcijama:

>>> help(cefa)
Help on function cefa in module __main__:

cefa(ce)
    (num) -> float
    Za unetu temperaturu u Celzijusima,
    vraca vrednost u Farenhajtima.

>>> help(face)
Help on function face in module __main__:

face(fa)
    (num) -> float
    Za unetu temperaturu u Farenhajtima,
    vraca vrednost u Celzijusima.

Help vam sada vraca informacije koje ste upisali u docstring funkcije.

Ovo je tipican nacin pisanja docstringa. Da li cete i kako koristiti ovu opciju potpuno je na vama. Ona moze biti narocito korisna u timskom radu, kao i korisnicima vasih programa radi brzog pregleda informacija.

2) Funkcija iz funkcije

Vec je pomenuto da funkcija moze pozivati drugu funkciju. Ovo je korisno radi razbijanja komplexnih zadataka na jednostavnije. Takodje i radi optimizacije koda, jer ako znate pouzdano da vam neka vec napisana funkcija dobro radi, nema potrebe da isto ponavljate u drugoj.

Radi ilustracije, napravicemo jednostavan primer. Pretpostavimo da zelite da napisete funkciju koja uzima dva broja, sabira ih i podize na kvadrat. Pri tome, vec imate funkciju koja dize na kvadrat.

To bi moglo izgledati ovako. U Python editoru kucajte:

def kvad(a):
    return a*a

def skvad(a,b):
    return kvad(a+b)

Testirajmo funkciju u shellu:

>>> skvad(1,4)
25
>>> skvad(5,7)
144

Kao sto vidite, funkcija skvad uzima dva broja, sabira ih, poziva funkciju kvad koja ih podize na kvadrat, i na kraju nam vraca rezultat. Pri tome je naravno moguce upotrebljavati i funkciju kvad direktno:

>>> kvad(4)
16

Ovim zavrsavamo treci text serijala o funkcijama. U narednom i poslednjem bavicemo se praksom kroz jedan zanimljiv primer.

Python: Funkcije, primeri

U uvodnom textu smo ukratko objasnili sta su funkcije, kako se pisu i koriste. Sada cemo objasniti neke osobenosti funkcija kroz primere. Podsetite se kako se tehnicki radi sa .py fajlovima, jer ce vam biti od koristi i ovde.

Kao sto smo rekli, funkcije se sastoje od: imena, argumenata, neke akcije i rezultata. Medjutim, u praksi cete se sretati sa programima koji nemaju sve elemente standardne strukture. Evo i nekoliko primera.

1) Funkcije ne moraju da imaju akciju (radni deo). Akcije moze biti upisana u rezultat direktno.

Za ovaj primer iskoristicemo funkciju sab koju smo vec napisali. Ako ste je sacuvali, desni klik na sab.py i izaberite Edit with IDLE. Ako ne, otvorite IDLE i File > New Window za editor, pa upisite ili iskopirajte code.

Da se podsetimo sab.py izgleda ovako:

def sab(a,b):
    x = a+b
    return x

U ovom jednostavnom primeru radni deo je nepotreban. Nije potrebno napraviti dodatnu varijablu x za sabiranje, pa onda vracati tu varijablu. Moguce je u startu vratiti zbir.

Promenite vas sab.py code tako da izgleda ovako:

def sab(a,b):
    return a+b

Snimite ga sa File > Save i izvrsite sa Run > Run Module. U IDLE Shellu kucajte:

>>> sab(3,4)
7

Kao sto vidite funkcionalnost je ostala ista, iako je radni deo obrisan. Ili preciznije, prebacen u deo za rezultat. Sa ovim cete se vrlo cesto sretati.

2) Funkcije ne moraju da imaju rezultat/return. Ponekad je akcija sve sto zelite.

Napisite sledecu funkciju u IDLE Editoru, snimite je i izvrsite:

def sila(ime):
    print('May the Force be with you,',ime+'.')

Zatim je u Shellu pozovite sa argumentom vaseg imena. Npr. ako se zovete Dejan pisite:

>>> sila('Dejan')
May the Force be with you, Dejan.

Dobicete poznati pozdrav i StarWars-a. U ovom primeru funkcija nema rezultat koji vraca, vec samo izvrsava akciju na osnovu prosledjenog argumenta.

3) Funkcije ne moraju imati ni argumente.

Napisite sledecu funkciju u IDLE Editoru, snimite je i izvrsite:

def cikajova():
    print('Ucio ih, ucio\nOd srede do petka\n' \
          'Al\' se nisu odmakli\nDalje od pocetka.')

Pozovite je u IDLE Shellu jednostavno sa:

>>> cikajova()
Ucio ih, ucio
Od srede do petka
Al' se nisu odmakli
Dalje od pocetka.

Dobicete poznate stihove Cika Jove Zmaja. :) Ovde funkcija nema ni argumente ni rezultat, vec samo izvrsava neku akciju. Na ovaj nacin ih mozemo koristiti kao subrutine, sto donekle vazi i za drugi primer.

Napomena: Sve funkcije mogu stajati u istom .py fajlu. Ovo vazi i za glavni code koji ih pokrece.

4) A funkcije mogu biti i korisne.

Do sada smo pisali samo genericke funkcije sa ciljem da ilustrujemo neke osobine i mogucnosti. Sada cemo napisati jednu korisnu funkciju, temperaturni konverter izmedju celzijusa i farenhajta.

U IDLE Editoru napisite, snimite i izvrsite sledeci code:

def face(fa):
    return (fa-32)*5/9

def cefa(ce):
    return ce*9/5+32

Koristite cefa za konverziju C u F a face obrnuto. Npr.

>>> cefa(25)
77.0
>>> face(47)
8.333333333333334

Ovo vam moze biti korisno ako imate drugove u Americi ili na Bahamima. :)

Ovim zavrsavamo drugi deo serije textova u funkcijama. U sledecem textu cemo opisati dva trika koja ce vase funkcije uciniti produktivnijim.

Python osmi cas

For petlja sluzi da se neka komanda ili funkcija, odnosno blok komandi ili funkcija izvrsi odredjeni broj puta.

Primer 1:

U ovom primeru se koristi range, koji ima format range(start,kraj,korak). Korak se ne mora uvek koristiti. Ako se izostavi, podrazumevana vrednost je 1, ako se stavi neki broj, na primer 2, bio bi na primer ispisan svaki drugi broj. O tome kasnije.
Obratite paznju da blok komandi i funkcija koje su obuhvacene for petljom mora biti uvucen. Kada se petlja zavrsi posle odredjenog broja puta, nastavlja se izvrsavanje programa.

#! /usr/bin/python3

for n in range(1,11):
   print (n)

print (\nOvo je bio primer for petlje.")

Primer 2:

Ovaj primer je slican prethodnom, razlika je, sto je funkciji print dodat end=" ", na taj nacin, umesto liste brojeva koji su jedni ispod drugog, brojevi ce biti ispisani jedan pored drugog. Ovo je mozda trebalo da pomenem kada sam pisao o funkciji print, ali dobro, moze i ovde, ovo je dobar primer kada se koristi end=" ".

#! /usr/bin/python3

for n in range(1,11):
   print (n, end=" ")

print (\nOvo je bio primer for petlje.")

Primer 3:

For se ne mora koristiti samo sa brojevima, vec se moze koristiti i sa karakterima u stringu. U ovom konkretnom primeru, mora se na pocetku definisati varijabla a = 0 i zatim, varijabla a, sluzi kao brojac karaktera jer se za svaki karakter u stringu uvecava za 1 u liniji a = a + 1.

#! /usr/bin/python3

s = "Python"
a = 0

for n in s:
   a = a + 1
   print (a,"slovo u stringu je",n)

print (\nOvo je bio primer for petlje.")

Primer 4:

Slicno kao i prethodnim primerima, samo ovde mnozim svaki broj u opsegu sa 2.

#! /usr/bin/python3

for n in range(1,5):
   print (n*2)

print (\nOvo je bio primer for petlje.")

primer 5:

U ovom primeru koristim i treci argument u funkciji range. Posto je treci argument, odnosno korak 2, to znaci da ce biti preskocen svaki drugi broj u opsegu.

#! /usr/bin/python3

for n in range(1,11,2):
   print (n)

print (\nOvo je bio primer for petlje.")

Primer 6:

U ovom primeru brojanje ide u nazad.

#! /usr/bin/python3

for n in range(10,0,-1):
	print(n)

Python: Funkcije, uvod

Kao i vecina programskih jezika, Python nam omogucava da pisemo vlastite funkcije. To su zapravo odvojeni delovi programa, napisani sa ciljem da izvrsavaju neki zadatak. Kada ih jednom definisemo, mozemo ih pozivati koliko puta zelimo. U tom smislu podsecaju na subrutine iz basica.

Drugi razlog koriscenja funkcija je bolja organizacija. Ovaj tzv. modularni pristup programiranju nam omogucava da komplexne zadatke razbijemo na vise delova. Ovi delovi / moduli kasnije mogu da se menjaju i unapredjuju, pozivaju jedan iz drugog itd. U zavisnosti od stila, postoje programeri koji koriste funkcije u >90% svog koda, upravo iz ovog drugog razloga.

Struktura funkcije je vrlo jednostavna. Ona ima: ime, argumente, neku akciju i rezultat. Ime sluzi da je pozovemo. Argumenti su neki podaci koje joj dajemo. Akcija je ono sto uradi. I rezultat su povratni podaci koje nam funkcija vraca.

U Pythonu ova struktura izgleda ovako:

def ime(a,b,c..):
    neka akcija
    sa a,b, i c
    return x

U ovom primeru ime je ime funkcije; a, b i c su argumenti; u sredini je neka radnja i x je rezultat koji nam funkcija vraca. No da se manemo teorije, jer se programiranje najbolje uci kroz primere i praksu.

Napisimo jednu jednostavnu funkciju:

1. Otvorite IDLE. Idite na File > New Window (ili Ctrl+N). Otvorice vam se novi editor.
2. U njemu ukucajte sledeci code:

def sab(a,b):
    x = a+b
    return x

3. U editoru gde ste napisali code funkcije idite na File > Save as i snimite ga recimo na Desktop pod nazivom sab.py. U koliko probate da pokrenete fajl pre nego ga snimite dobicete upozorenje da ovo nije moguce. Isto vazi i ako kasnije modifikujete fajl.

4. U editoru gde ste napisali code funkcije i snimili ga, idite na Run > Run Module (ili F5). Ovim cete izvrsiti funkciju i bicete automatski vraceni u osnovni IDLE shell.

5. U IDLE Shellu kucajte recimo:

>>> sab(10,20)
30

Cestitam, upravo ste napisali svoju prvu funkciju u Pythonu. Ova procedura pisanja funkcija u novom prozoru, zatim snimanje i izvrsavanje je inace uobicajena kod pisanja Python programa. U koliko se ranije niste sretali sa ovim, ponovite proceduru nekoliko puta da bi vam postala bliska.

U koliko kasnije budete zeleli da menjate sab.py, desni klik na njega ce vam dati opciju Edit with IDLE. Ako napravite izmene, moracete najpre da snimite ovakav fajl da bi ste mogli da ga izvrsite. Slobodno experimentisite u Pythonu, to je najbolji nacin da naucite ovaj programski jezik.

Dodacemo jos da su varijable unutar funkcije lokalne za tu funkciju. Drugim recima, u svom glavnom programu mozete koristiti ista slova koja ste koristili unutar neke funkcije. Takodje, i u drugim funkcijama mozete raditi isto.

Primera radi otvorite sab.py (desni klik > Edit with IDLE) i izvrsite ga (Run > Run Module). Zatim u IDLE Shellu kucajte nesto tipa:

>>> a = 10
>>> x = 15
>>> b = sab(10,x)+a
>>> print(b)
35

Iz ovoga se vidi da se varijable a,b i x u glavnom programu nezavisno koriste od varijabli unutar funkcije sab.

Toliko za uvod. U narednom textu cemo kroz primere obraditi neke osobenosti funkcija.

Python sedmi cas

Cesto cete biti u situaciji da kontrolisete tok programa u zavisnosti od nekih uslova. Jedan od nacina da to uradite je uz pomoc komande if. Uz if mogu da se koriste elif i else, ali nisu obavezni.

Primer 1:

Program trazi da unesete odgovor. Ako je odgovor da, onda se program prekida. Ako nije da, onda se program nastavlja.

#! /usr/bin/python3

zzz = input ("Da li zelis da prekines izvodjenje programa?  ")

if zzz == "da":
   exit()

print('\nOvo je bio primer kako se koristi "if"')

Primer 2:

Program trazi da se ukuca rezultat zbira 2+2. Ako je odgovor tacan, onda se izvrsava blok komandi ispod if zzz == 4 i zatim program nastavlja dalje izvrsavanje ignorisuci blok komandi ispod elif zzz != 4.
Obratite paznju na uvucene linije. To je u Pythonu jako vazna stvar.
Neke komande, u ovom primeru if i elif imaju blok komandi koje slede ispod i taj blok komandi mora da bude uvucen.
U sustini, prostim jezikom receno, if i elif proveravaju da li je uslov ispunjen.
Ako je uslov iza if, odnosno elif ispunjen onda se izvrsava taj blok komandi.
Zatim program nastavlja izvodjenje programskih linija koje nisu uvucene.

#! /usr/bin/python3

zzz = input ("Koliko je 2+2? ")
zzz = int(zzz)

if zzz == 4:
   print("Tvoj odgovor je tacan!")
elif zzz != 4:
   print("Tvoj odgovor nije tacan!")
   print("Tacan odgovor je 4.")

print('\nOvo je bio primer kako se koristi "if"')

Primer 3:

Ako nijedan od uslova nije ispunjen, onda se izvrsava blok komandi ispod else.

#! /usr/bin/python3

zzz = input ("Koliko imas godina? ")
zzz = int(zzz)

if zzz <= 20:
   print("Ti si bas mlad.")
elif zzz <= 50:
   print("Ti si u najboljim godinama.")
else:
   print("Bas si mator.")

print('\nOvo je bio primer kako se koristi "if"')

U ovim primerima ste mogli da zapazite i neke simbole koji se koriste za if, elif i else.
U Pythonu postoji 6 simbola za razlicite uslove.

Manje od ............ <
Vise od ............. >
Manje ili jednako ... <=
Vece ili jednako .... >=
Jednako ............. ==
Razlicito ........... !=
Follow

Get every new post delivered to your Inbox.