-
Ono što želim da uradim u ovom klipu
jeste da vas izložim ideji
-
i da vam predstavim
-
šta je to kompjuterski program.
-
A u slučaju da želite da isprobavate paralelno
-
a jako vam preporučujem da to radite
-
jer pravi način za učenje računarskih nauka
-
i jeste da se malo sami poigrate sa stvarima.
-
Ovo je Python (čita se: pajton) okruženje
-
tako da ću dosta programirati u jeziku zvanom Python.
-
A ovo ovde, ovo okruženje
se naziva PyScripter.
-
P-Y-S-C-R-I-P-T-E-R.
-
Besplatano je, To je "open-source" softver
(prevod: softver otvorenog koda).
-
I ja ću koristiti Python... Python...
-
Mislim da koristim Python 2.6 ili 2.7.
-
Dokle god koristite Python 2
-
vaši primeri će biti isti kao i moji,
-
radiće na isti način.
-
Ali ako koristite Python 3
-
moraćete da koristite malo drugačiji pristup
-
s vremena na vreme kako bi sve radilo korektno.
-
Pokušaću da ukažem na te izuzetke
kada se budu dešavali
-
Dakle, hajde da počnemo sa pisanjem
jednog kompjuterskog programa.
-
Ono što je super u ovde
-
je to što program možemo pisati odmah tu.
-
A u suštini sa samo menjamo tekstualni dokument.
-
To je sve što radimo.
-
To je grupa instrukcija (naredbi)
-
i u većini slučajeva će kompjuter početi
-
sa vrha ovog dokumenta
i jednostavno nastaviti naniže
-
čitajući ove naredbe.
-
Iako ćete kasnije videti
-
da postoje načini da se kompjuteru kaže
-
da preskoči neke naredbe,
ali i da kruži kroz instrukcije
-
tako da nešto može da radi iznova i iznova
ili da neke druge stvari preskoči.
-
Imajući u vidu rečeno, hajde da napišemo jednostavan program
-
i dok ovo radimo,
-
upoznaćemo sa nekim osnovnim konceptima
-
koji se javljaju u okviru kompjuterkog programa.
-
Dopustite mi da vam napišem veoma jednostavan program.
-
Dakle, jedan veoma jednostavan program
-
bi bio bukvalno samo jedan izraz.
-
Stoga, napisaću samo *print 3 + 7*,
-
Ovaj program će bukvalno da uzme *3 + 7*
i da to prikaže na ekranu.
-
Program će to proslediti print funkciji
-
koja dolazi u okviru Python jezika.
-
Možda da to napišem ovako: *print( 3 + 7 )*.
-
Sačuvaću dokument. Dakle postoji samo jedna...
-
ako razmislite o tome, samo jedna komanda
-
ovde na prvoj liniji.
Ona kaže *print 3 + 7*
-
Zapravo, hajde da dodamo još jednu naredbu,
-
da biste videli da će program da se izvrši od vrha pa na dole.
-
Dodaću još jednu liniju: *print( 2 - 1 )*
-
i uradimo ovo: *print( "this is a chunk of text" )*
-
Hajde da vidimo šta će ovaj kompjuterski program
-
da uradi.
-
Sačuvaću ga.
-
Sačuvaću ga.
-
Sačuvao sam ga kao dokument "testarea.py".
Kaže da... da... Da je to...
-
Ekstenzija .py označava Python dokument.
-
Sada, hajde da izvršimo program.
-
Ono što je lepo kod ovog okruženja za razvoj,
-
kod ovog IDE-a
odnosno "Integrisanog okruženja za razvoj"
-
jeste to što možete da pišete i izvršavate program
na istom mestu.
-
Takođe, ono boji vaš tekst,
-
tako da možete jasno videti šta je funkcija,
šta nije funkcija,
-
različite tipove podataka...
-
pričaćemo kasnije još o tipovima podataka.
-
Hajde da samo pokrenimo program
da vidimo šta će se desiti.
-
Evo nas, izvršili smo program!
-
Program je prikazao 10 [deset], zatim 1 [jedan],
-
i na kraju je prikazao *"this is a chunk of text"*
(prevod: ovo je parče teksta).
-
Dakle program je uradio tačno ono sto šmo mu rekli da uradi.
-
I uradio je to u odgovarajućem redosledu.
-
Počeo je ovde gore, izvršio *3 + 7* i dobio 10 [deset],
-
zatim je prikazao rezultat, jprikazao je 10 [deset] ovde.
-
Zatim je prikazao 2-1,
-
i na kraju je prikazao *"this is a chunk of text"*
-
A sada jedna stvar sa kojom sam želeo da vas upoznam,
još odmah na početku,
-
to je ideja o tipovima podataka.
-
Možda kada ste videli ovaj primer,
-
možda ste imali neki osećaj da
-
vidi, tamo ima nešto što malo drugačije
-
između 3 [tri] ili 2 [dva] ili 1 [jedan] ili 7 [sedam]
i *"this is a chunk of text"*.
-
Ovo je broj... Osećam da, da ja jednostavno
mogu da sabiram brojeve.
-
Oni predstavljaju nešto u smislu kvantiteta.
-
Dok ovo ispod predstavlja parče teksta.
-
I vaša intuicija bi bila u pravu.
-
Postoje različite vrste podataka. 3, 7, 1 su
-
brojevne (numeričke) vrednosti. Oni su celi brojevi.
-
A ovo ispod, dole, je zapravo String, koji ste često
-
čuli u kompijuterskoj nauci, a odnose se na niz slovnih karaktera.
-
U Python-u možemo da pitamo koji se tip
-
podataka prosleđuje nekoj funkciji. Na primer, ako ih prosledite funkciji "type"
-
onda će se prikazati i tip podataka od 3+7, ne samo 10.
-
Hajde da probamo. Samo ću prikazati 2-1 da vam pokažem razliku.
-
Zatim ću prikazati tip od ovog parčeta teksta.
-
Sačuvajmo dokument. Pritisnuci CTRL+S na tastaturi, što je prečica za čuvanje.
-
Zatim ću pokušati da izvršim ovaj program. Evo ga.
-
Kompjuter je analizirao ovaj izraz. Počinje sa unutrašnjim zagradama.
-
3+7 je 10. Zatim pokušava da dobije tip (vrstu podataka) od 10, koji je int,
-
tip int, zatim prikazuje da je tip int.
-
Vidite baš ovde. Kaže: tip int.
-
int je skraćenica od Integer (celi brojevi).
-
Zatim kaže print(2-1). Kaže to na ovoj liniji ovde,
-
prikazuje 1, a zatim prikazuje tip od ovog čitavog dela
-
baš ovde. Dakle, umesto prikazivanja teksta,
-
prikazuje njegov tip (vrstu). I njegova vrsta je String.
-
Sledeća stvar sa kojom želim da vas upoznam
-
dok eksperimentišemo sa ovim programom je
-
ideja o promenljivama. Zbog toga što ćemo želeti
-
da čuvamo ove vrednosti na različitim mestima.
-
U sledećim klipovima naučićemo da u Python-u,
-
imamo nešto nalik na etikete za ove vrednosti,
-
i etikete se mogu menjati.
-
Hajde da napišemo totalno drugačiji program
-
korišćenjem promenljivih. Ono što je dobro kod Python-a, iako se
-
nekim ljudima ne dopada, je da se bilo koji tip podataka može
-
staviti u bilo koji tip promenljive.
-
Može se reći *a = 3 + 5*, zatim možemo reći
-
*b = a * a - a - 1*
-
[zabeleška: * znaci "puta", koristi se da označi operaciju množenja.]
-
zatim može se reći *c = a * b* (c je jednako a puta b).
-
Staviću malo prostora ovde da program napravim malo "čistijim".
-
Konačno, prikažimo c. Ukoliko želitie, možete da pokušate
-
da razumete kako će c da izgleda
-
ili možemo samo da izvršimo ovaj program.
-
Hajde da izvršimo program i onda
-
da se vratimo nazad i vidimo da li je program odradio ispravnu stvar.
-
Sačuvaću program i potom ga izvršiti.
-
Dobili smo 440 za c. Pogledajmo ukoliko ovaj rezultat ima smisla.
-
3 + 5 je 8. Dakle, etiketa "a" će se odnositi na 8.
-
Svako mesto u programu, sve dok ne predefinišemo "a",
-
svaki put kada koristimo "a" program će znati da to znači 8.
-
Tako da kada krenemo dalje, ovde dole, i definišemo "b" program kaže
-
*a * a*. Program koristi redosled operacija, tako da prvo izvršava
-
množenje. *a * a = 64*.
-
*64 - a je 64 - 8*, što je jednako 56. 56 minus 1 je 55.
-
Dakle "b" je 55. I "c" je *a * b*,
-
I 8 puta 55 je upravo 440. Tako je sve razrađeno.
-
Možda želite da vidite šta se dobije kada
-
dobijete različite vrednosti "a". Možete pokušati to da odradite.
-
Možete pokušati da napravite da je "a" jednako -6
-
i izvršite program da vidite šta će se desiti.
-
Dobili smo -246. I sada možete to da potvrdite i sami.
-
Idite liniju po liniju, i pogledajte na šta se odnose
-
i kako su definisane promenljive,
-
i vidite da li možete da dobijete ovaj odgovor ovde.
-
Sada, ako su programi samo grupa naredbi
-
kroz koje se prolazi pravolinijski,
-
ne biste bili u mogućnost da radite zaista zanimljive stvari.
-
Da biste radili zaista interesantne stvari, počećete
-
da viđate stvari kao što su uslovi i petlje.
-
hajde da pogledamo uslov. Ostaviću prve linije koda nepromenjene.
-
I kucaću "*if (a < 0):*". U ovom slučaju, zadaćemo *print( c )* naredbu
-
zatim otkucati "else", i u ovom slučaju zadaćemo *print (c - a)*.
-
ovo je interesantno. Možda već imate ideju
-
šta će se dogoditi ovde. Ali sačuvajmo dokument.
-
Neverovatno je koliko možete da uradite samo
-
sa ovim uslovima. Dakle, ovo nam govori da
-
ako je "a" manje od nule, uradi ovo, u suprotnom
-
ako "a" nije manje od 0, uradi ovo ovde.
-
Primetite da ne idemo direktno nadole.
-
U zavisnosti od "a", da li je veće ili manje od 0,
-
program će da izvrši ili ovu liniju ovde,
-
ili će da izrvrši ovu liniju ovde.
-
Nacin na koji Python zna da izvrši samo
-
"print(c)" ako je "a" manje od 0 je zato što je
-
print(c) uvučeno. Uvučen je ovaj deo uslova.
-
Način na koji Python zna da postoje novi uslove za njega
-
je zbog ove dvotačke ovde.
-
Ukoliko "a" nije manje od 0, onda program izvršava ovaj "else" uslov.
-
Ukoliko želite da uradite nešto drugo nakon ovoga,
-
bez obzira da li je "a" veće od 0 ili ne,
-
možete da se oslobodite ovog uslova tako što ćete se osloboditi
-
uvlačenja. Dakle, sada možemo samo da prikažemo niz.
-
Zapravo, hajde da dodamo nešto više ovom uslovu.
-
Hajde da prikažemo ovde "a<0"
-
Obratite pažnju: ovo neće biti izvršeno.
-
Imamo ovo u okviru niza, tako da će program samo
-
to prikazati. na ovom mestu, rećićemo
-
*print("a nije manje od 0").*
-
Ovo je interesantan program. Hajde da ga pokrenemo sad.
-
Nadajmo se da će se pokrenuti. Sačuvao sam ga. Sada, hajde da izvršimo program.
-
I prikazano je "a<0", tako da pokazuje da smo unutar ovog uslova.
-
Zatim je prikazao "c", koji iznosi -246.
-
program ne izvršva ovo, zato što bi to bilo izvršeno samo
-
ako "a" nije bilo manje od 0.
-
Ali kada izbegne ovaj uslov, tada prikazuje
-
"*gotovi smo sa ovim programom*" bez obzira na sve.
-
Hajde sada da promenimo "a" i vidimo šta ćemo dobiti kada
-
pokrenemo ovaj drugi uslov. Hajde da napravimo da je "a" veće od 0.
-
Hajde da stavimo da je "a" jednako 9 i pokrenemo program.
-
Dakle, "a" je 9. Program proverava "da li je a manje od 0?",
-
pa, "a" nije manje od 0, pa neće
-
izvršiti ovo, već će preći na else uslov.
-
Dakle, prikazaće "a nije manje od 0",
-
koje sam ja uradio ovde, zatim će odštampati *c - a*
-
što je 630. Preskače ovaj uslov,
-
i bez obzira da li je "a" manje od 0 ili ne,
-
prikazuje "gotovi smo sa ovim programom".