Python. bez oklevanja. Prevod drugog izdanja. Paul Barry

Size: px
Start display at page:

Download "Python. bez oklevanja. Prevod drugog izdanja. Paul Barry"

Transcription

1 Python bez oklevanja Prevod drugog izdanja Zar ne bi bilo bajno kad bi postojala knjiga o Pythonu uz koju ne biste želeli ništa osim da sednete pred računar i pišete kôd? To je verovatno samo san... Paul Barry

2 autor Autor knjige Python bez oklevanja Dok su napolju u šetnji, Paul zastaje i raspravlja o pravilnom izgovaranju reči tuple (n-torka) sa svojom mučenicom od žene. Ovo je Dierdrena uobičajna reakcija. Paul Barry živi i radi u gradiću Carlow (u Irskoj), koji ima oko stanovnika, a nalazi se oko 80km jugozapadno od glavnog grada, Dublina. Paul ima diplomu Informacionih sistema, kao i magistaturu Računarstva. Takođe je završio postdiplomske studije Predavanja i nastave. Paul radi u Institutu za tehnologiju, Carlow od 1995, i predaje na njemu od Pre nego što je počeo da predaje, Paul je proveo deset godina u IT industriji radeći u Irskoj i Kanadi, gde je najviše radio u okviru zdravstva. Paul je oženjen sa Deirdre i oni imaju troje dece (od kojih je dvoje sada na fakultetu). Programski jezik Python i tehnologije vezane za njega bili su sastavni deo Paulovih predavanja za studente počevši od akademske godine Paul je autor (ili koautor) još četiri tehničke knjige: dve o Pythonu i dve o Perlu. U prošlosti, mnogo je pisao za časopis Linux Journal Magazine, u kojem je bio dopisnik i urednik. Paul je odrastao u Belfastu, u Severnoj Irskoj, što donekle objašnjava njegove stavove kao i njegov smešan akcenat (osim, naravno, ako ste i vi sa Severa, pa su u tom slučaju Paulova shvatanja i akcenat sasvim normalni). Pronaći ćete Paula na Twitteru (@barrypj), i na njegovom sajtu: carlow.ie. iv

3 sadržaj Sadržaj ukratko 1 Osnove: Brzi početak 1 2 Podaci u listi: Rad sa uređenim podacima 47 3 Strukturisani podaci: Rad sa strukturisanim podacima 95 4 Višekratna upotreba koda: Funkcije i moduli Izgradnja veb aplikacije: Sada stvarno Čuvanje i obrada podataka: Gde da stavite svoje podatke Upotreba baze podataka: Upotrebimo Pythonov DB-API Malo klase: Apstrahovanje ponašanja i stanja Protokol za upravljanje kontekstom: Uklapanje u Pythonovu naredbu with Dekoratori funkcija: Umotavanje funkcija Obrada izuzetaka: Šta da se radi kad stvari krenu naopako ¾ Nešto o nitima: Bavimo se čekanjem Napredna iteracija: Brze petlje 477 A Instalacija: Instaliranje Pythona 521 B Pythonanywhere: Isporuka vaše veb aplikacije 529 C Deset nepomenutih stvari: Uvek ima još šta da se nauči 539 D Deset neobrađenih projekata: Još neke alatke, biblioteke i moduli 551 E Uključite se: Python zajednica 563 Sadržaj (prava stvar) Uvod Vaš mozak i Python. Vi pokušavate nešto da naučite, dok vaš mozak hoće da vam pomogne tako što se trudi da ne zapamtite to što učite. Vaš mozak misli da je bolje ostaviti mesta za važnije stvari, na primer: Koje divlje životinje treba izbegavati i da li je pametno ići na sankanje bez odeće. Dakle, kako ubediti svoj mozak da vam je od životne važnosti da naučite da programirate u jeziku Python? Za koga je ova knjiga? xxiv Već znamo šta mislite xxv Mi znamo kako vaš mozak misli xxv Metakognicija: razmišljanje o razmišljanju xxvii Evo šta smo MI radili xxviii Pročitajte xxx Tim za tehnički pregled xxxii v

4 sadržaj 1osnove Brzi početak Počnite da programirate u jeziku Python što je pre moguće. U ovom poglavlju, predstavljamo osnove programiranja u jeziku Python, a to radimo u tipičnom stilu serije Bez oklevanja: odmah uskačemo. Nakon prvih par stranica, izvršićete prvi primer programa. Na kraju poglavlja, nećete samo biti u stanju da izvršite primer programa, nego ćete i razumeti njegov kôd (i više od toga). Usput, učićete o nekoliko stvari po kojima se programski jezik Python odlikuje. Dakle, da više ne gubimo vreme. Okrenite stranicu, pa da počnemo!! Understanding IDLE s Windows Izvršavanje koda, naredbu po naredbu Funkcije + Moduli = Standardna biblioteka Strukture podataka su ugrađene Pozivanjem metoda dobiju se rezultati Odlučivanje kada da se izvrše blokovi koda Kakav else može da bude uz if? Svite mogu da sadrže ugnežđene svite Povratak u Python Shell Eksperimentisanje u prozoru interpretera Ponavljanje nad sekvencom objekata Iteriranje zadati broj puta Primena rezultata zadatka 1 na naš kôd Podešavanje pauziranja izvršenja Generisanje slučajnih celih brojeva sa Pythonom Kodiranje ozbiljne poslovne aplikacije Python kôd se lako čita Da li vas uvlačenje izluđuje? Tražimo od Interpretera pomoć oko funkcije Eksperimentisanje sa opsezima Chapter 1 s Code vi

5 sadržaj 2 podaci u listi Rad sa uređenim podacima Svi programi obrađuju podatke, a Python programi nisu izuzetak. U stvari, osvrnite se: podaci su svuda. Veliki deo programiranja, ako ne i veći, bavi se podacima: pribavljanje podataka, obrada podataka, analiza podataka. Da biste efikasno radili sa podacima, morate negde da stavite svoje podatke dok ih obrađujete. Python u tom pogledu blista, zahvaljujući (velikim delom) tome što uključuje pregršt široko primenjivih struktura podataka: liste, rečnike, n-torke i skupove. U ovom poglavlju ćemo predstaviti sve četiri, pre nego što veći deo ovog poglavlja posvetimo udubljivanju u liste (a u sledećem poglavlju se udubljujemo u ostale tri strukture). Odmah obrađujemo strukture podataka, jer će se najveći deo onoga što ćete verovatno raditi sa Pythonom vrteti oko rada sa podacima. Brojevi, stringovi... i objekti Upoznajte četiri ugrađene strukture podataka Neuređena struktura podataka: rečnik Struktura podataka koja izbegava duplikate: skup Definisanje liste Upotrebite editor kada radite sa više od par redova koda Lista raste za vreme izvršavanja Provera članstva sa in Uklanjanje objekata iz liste Proširivanje liste objektima Umetanje objekta u listu Kako kopirati strukturu podataka Liste proširuju notaciju sa uglastim zagradama Liste shvataju Start, Stop, i Step Start i Stop u listama Isečci na poslu sa listama Pythonove for petlje shvataju liste Marvinovi isečci detaljno Kada ne treba koristiti liste Kôd poglavlja 2, 1 od D 1 o 2 n ' 3 4 t 5 6 p 7 a 8 n 9 i 10 c 11! vii

6 sadržaj 3 strukturisani podaci Rad sa strukturisanim podacima Pythonova lista je odlična struktura podataka, ali to nije rešenje za sve podatke. Kada imate stvarno strukturisane podatke (a lista nije najbolji izbor za njihovo čuvanje), Python vam priskače u pomoć sa svojim ugrađenim rečnikom. Odmah upotrebljiv, rečnik omogućava čuvanje svake kolekcije parova ključ/vrednost i njenu obradu. U ovom poglavlju ćemo dugo i temeljno razmatrati Pythonov rečnik, i usput pogledati i skup i n-torku. Zajedno sa listom (koju smo upoznali u prethodnom poglavlju), strukture podataka rečnik, skup i n-torka pružaju jedan skup alata za podatke koji pomažu da Python i podaci postanu jedna moćna kombinacija. Name: Ford Prefect Gender: Male Occupation: Researcher Home Planet: Betelgeuse Seven Rečnik čuva parove ključ/vrednost Kako u kodu prepoznati rečnik Redosled unošenja se NE zadržava Pretraga vrednosti pomoću uglastih zagrada Rad sa rečnicima za vreme izvršavanja Ažuriranje mere frekvencije Iteracija nad rečnikom Iteracija nad ključevima i vrednostima Iteracija nad rečnikom putem items Koliko su rečnici dinamični? Izbegavanje greške KeyError za vreme izvršavanja Provera članstva sa in Obezbeđivanje inicijalizacije pre upotrebe Zamena not in umesto in Upotreba metoda setdefault Efikasno pravljenje skupova Korišćenje metoda skupova Argumenti za n-torke N-torke su nepromenljive Pristupanje kompleksnoj strukturi podataka Kôd poglavlja 3, 1 od viii

7 sadržaj 4 višekratna upotreba koda Funkcije i moduli Višekratna upotreba koda je ključna za održiv sistem. A kada je u Pythonu reč o višekratnoj upotrebi koda, sve počinje i završava se skromnom funkcijom. Uzmite par redova koda, dodelite im ime, i imate funkciju (koja može višekratno da se upotrebljava). Uzmite kolekciju funkcija i spakujte ih kao fajl, i imate modul (koji takođe može višekratno da se upotrebljava). Istina je kada kažu: dobro je deliti, a kada stignemo na kraj ovog poglavlja, vi ćete biti na dobrom putu da delite i višekratno koristite svoj kôd, zahvaljujući tome što ćete znati kako rade Pythonove funkcije i moduli. Višekratno korišćenje koda sa funkcijama Predstavljanje funkcija Pozivanje funkcije Funkcije mogu da prihvataju argumente Vraćanje jedne vrednosti Vraćanje više vrednosti Podsećanje na ugrađene strukture podataka Pravljenje opštije korisne funkcije Pravimo još jednu funkciju, 1 od Određivanje podrazumevanih vrednosti argumenata Poziciono dodeljivanje i po ključnim rečima Utvrdimo ono što već znamo o funkcijama Izvršavanje Pythona sa komandne linije Pravljenje obaveznih fajlova za postavku Pravljenje fajla za distribuciju Instaliranje paketa pip Prikaz semantike poziva po vrednosti Prikaz semantike poziva po referenci Instaliranje alatki za testiranje Koliko je naš kôd usklađen sa dokumentom PEP 8? Razumevanje poruka o greškama Kôd poglavlja module ix

8 sadržaj 5 izgradnja veb aplikacije Sada stvarno U ovoj fazi, već dovoljno znate Python da postajete opasni. Pošto ste prešli prva četiri poglavlja ove knjige, sada ste u stanju da produktivno koristite Python u okviru bilo koje oblasti primene (iako ima još mnogo da se uči o Pythonu). Umesto da razmatramo dugačak spisak tih oblasti primene, mi ćemo u ovom i u sledećim poglavljima učenje oslanjati na razvoju jedne aplikacije smeštene na Veb, pošto je to područje na kojem je Python posebno jak. Usput ćete učiti još malo o Pythonu. Međutim, pre nego što krenemo dalje, hajde da ukratko ponovimo ono što već znate o Pythonu.. Python: šta već znate Šta želimo da naša veb aplikacija radi? Hajde da instaliramo Flask Kako radi Flask?? Prvo izvršavanje vaše Flask veb aplikacije Pravljenje objekta Flask veb aplikacije Dekorisanje funkcije URL-om Izvršavanje ponašanja vaše veb aplikacije Izlaganje funkctionalnosti na Vebu Izrada HTML obrasca Šabloni vezani za veb stranice Vizualizacija šablona kroz Flask Prikaz HTML obrasca naše veb aplikacije Priprema da se izvrši kôd šablona Shvatanje HTTP statusnih kodova Obrada poslatih podataka Usavršavanje ciklusa uredi/stani/pokreni/testiraj Pristup podacima HTML obrasca pomoću Flaska Upotreba podataka iz zahteva u vašoj veb aplikaciji Prikazivanje rezultata kao HTML Priprema vaše veb aplikacije za oblak Kôd poglavlja x

9 sadržaj 6 čuvanje i obrada podataka Gde da stavite svoje podatke Kad tad, moraćete negde bezbedno da čuvate svoje podatke. A kad je reč o čuvanju podataka, Python ima rešenje i za to. U ovom poglavlju, učićete o čuvanju podataka u tekstualnim fajlovima i uzimanju podataka iz njih, koji kao mehanizam za skladištenje možda deluju pomalo prosto, ali se i pored toga koriste u mnogim problemskim područjima. Pored spremanja i uzimanja podataka iz fajlova, učićete takođe i neke tajne zanata kada je u pitanju obrada podataka. Ozbiljne stvari (čuvanje podataka u bazi podataka) ostavljamo za sledeće poglavlje, ali i za sada imamo dovoljno da nas zaokupi dok radimo sa fajlovima. Uradimo nešto sa podacima vaše veb aplikacije Python podržava otvaranje, obradu, zatvaranje Čitanje podataka iz postojećeg fajla with je bolje od otvaranje, obrada, zatvaranje Pregledanje dnevnika kroz vašu veb aplikaciju Ispitajte sirove podatke sa View Source Vreme za izbegavanje Pregledanje celog dnevnika u vašoj veb aplikaciji Evidentiranje konkretnih atributa veb zahteva Evidentiranje jednog reda razgraničenih podataka Od sirovih podataka do čitljivog izlaza Pravljenje čitljivog izlaza sa HTML-om Ugradite logiku prikaza u svoj šablon Pravljenje čitljivog izlaza sa Jinja Trenutno stanje koda naše veb aplikacije Postavljanje pitanja o podacima Kôd poglavlja Form Data Remote_addr User_agent Results ImmutableMultiDict([( phrase, Mozilla/5.0 (Macintosh; { e, i } hitch-hiker ), ( letters, aeiou )]) Intel Mac OS X 10_11_2) AppleWebKit/ (KHTML, like Gecko) Chrome/ Safari/ xi

10 sadržaj 7 upotreba baze podataka Upotrebimo Pythonov DB-API Čuvanje podataka u sistemu relacione baze podataka je praktično. U ovom poglavlju, učićete kako da pišete kôd koji komunicira sa popularnom tehnologijom baza podataka MySQL, pomoću jednog generičkog API-ja za baze podataka po imenu DB-API. DB-API (koji se standardno isporučuje u svakoj Python instalaciji) vam omo gu ćava da pišete kôd koji se lako prenosi iz jednog u drugi proizvod baze podataka...pod uslovom da te baze podataka razumeju SQL. Mada ćemo mi koristiti MySQL, ništa vas ne sprečava da koristite DB-API kôd sa svojom omiljenom relacionom bazom podataka. Hajde da vidimo šta je sve potrebno da bi se relaciona baza podataka koristila iz Pythona. U ovom poglavlju nećemo naučiti mnogo novog Pythona, ali koristiti Python za rad sa bazama podataka je vrlo korisno, pa ga vredi naučiti. Osposobiti veb aplikaciju za baze podataka Zadatak 1: Instalacija MySQL servera Pythonov DB-API Zadatak 2: Instaliranje MySQL drajvera baze podataka za Python Instaliranje MySQL-Connector/Python-a Zadatak 3: Pravljenje baze podataka i tabela naše veb aplikacije. 287 Biranje strukture za evidentirane podatke Provera da li je tabela spremna za podatke Zadatak 4: Pisanje koda za rad sa bazom podataka i tabelama naše veb aplikacije Smeštanje podataka je samo pola posla Kako najbolje višekratno koristiti kôd vaše baze podataka? Razmotrite šta pokušavate višekratno da koristite A šta je sa uvoženjem? Videli ste taj šablon i pre To što je loše ipak nije tako strašno Kôd poglavlja Vaš kod MySQL xii Pythonov DB-API MySQL- Connector/Python drajver

11 8malo klase Apstrahovanje ponašanja i stanja sadržaj Klase omogućavaju da se ponašanje koda spoji sa stanjem. U ovom poglavlju, ostavljate svoju veb aplikaciju po strani dok učite o pravljenju Python klasa. To radite da biste stekli znanje potrebno da se menadžer konteksta napravi pomoću Pythonove klase. Pošto je pravljenje i upotreba klasa inače toliko korisna stvar, posvećujemo im ovo poglavlje. Nećemo reći sve o klasama, ali ćemo se dotaći svih elemenata koje morate da shvatite da biste sa sigurnošću napravili menadžer konteksta na koji vaša veb aplikacija čeka. Krenimo, pa da vidimo šta sve tu ima. Uklapanje sa naredbom with Osnove objektnog orijentisanja Pravljenje objekata od klasa Objekti dele ponašanje ali ne i stanje Radimo više sa CountFromBy Pozivanje metoda: ulaženje u detalje Dodavanje metoda u klasu Koliko je važan self Shvatanje opsega Prefiks imena atributa je uvek self Inicijalizujte vrednosti (atributa) pre upotrebe init sa crticama inicijalizuje atribute Inicijalizovanje atributa init sa crticama Prikazivanje klase CountFromBy Definisanje predstavljanja klase CountFromBy Razumne podrazumevane vrednosti za CountFromBy Klase: šta već znamo Kôd poglavlja xiii

12 sadržaj 9 protokol za upravljanje kontekstom Uklapanje u Pythonovu naredbu with Vreme je da ovo što ste upravo naučili i upotrebite. U poglavlju 7 bilo je reči o upotrebi relacione baze podataka sa Pythonom, dok smo u poglavlju 8 imali uvod u korišćenje klasa u vašem Python kodu. U ovom poglavlju se obe te tehnike kombinuju da bi se napravio menadžer konteksta koji će omogućiti da naredbu with proširimo na rad sa sistemima relacionih baza podataka. U ovom poglavlju, uklopićete se u naredbu with pomoću nove klase, usklađene sa Pythonovim protokolom za upravljanje kontekstom. Koji je najbolji način da se deli kôd baze podataka naše veb aplikacije? Razmotrite šta pokušavate da uradite, ponovo Upravljanje kontekstim pomoću metoda Već ste videli jedan menadžer konteksta na delu Pravljenje nove klase menadžera konteksta Inicijalizujte klasu sa dbconfig Podešavanje u enter sa crticama Rušenje metodom exit sa crticama Ponovno razmatranje koda vaše veb aplikacije, 1 od Prisećanje na funkciju log_request Ispravljanje funkcije log_request Podsećanje na funkciju view_the_log Ne menja se samo kôd Ispravljanje funkcije view_the_log Odgovori na pitanja o podacima Kôd poglavlja 9, 1 od File Edit Window Help Checking our log DB $ mysql -u vsearch -p vsearchlogdb Enter password: Welcome to MySQL monitor... mysql> select * from log; id ts phrase letters ip browser_string results :40:46 life, the uni... ything aeiou firefox {'u', 'e', 'i', 'a'} :42:07 hitch-hiker aeiou safari {'i', 'e'} :42:15 galaxy xyz chrome {'y', 'x'} :43:07 hitch-hiker xyz firefox set() rows in set (0.0 sec) mysql> quit Bye xiv

13 sadržaj 10 dekoratori funkcija Umotavanje funkcija Kada treba unaprediti kôd, protokol za upravljanje kontekstom iz poglavlja 9 nije jedini izbor. Python vam takođe omogućava da koristite dekoratore funkcija, tehniku putem koje možete da dodajete kôd u postojeću funkciju bez potrebe da se išta menja u postojećem kodu funkcije. Ako vam se čini da to zvuči kao nekakva crna magija, ne očajavajte: nije u tome stvar. Međutim, pravljenje dekoratora funkcije mnogi Python programeri često smatraju teškom tehnikom kodiranja, pa se zato ne koristi onoliko često koliko bi trebalo. U ovom poglavlju, planiramo da vam pokažemo da, uprkos tome što je reč o naprednoj tehnici, nije toliko teško napraviti i koristiti vlastite dekoratore. Vaš veb server (a ne vaš računar) izvršava vaš kôd Flaskova tehnologija sesije dodaje stanje Pretraživanje rečnika vraća vrednost Upravljanje prijavljivanjem pomoću sesija Hajde da pravimo Logout i proveru Statusa Kako proslediti funkciju drugoj funkciji Pozivanje prosleđene funkcije Prihvatanje liste argumenata Obrada liste argumenata Prihvatanje rečnika argumenata Obrada rečnika argumenata Prihvatanje svakog broja i tipa argumenata funkcije Pravljenje dekoratora funkcije Završna tačka: rukovanje argumentima Stavljanje vašeg dekoratora u rad Povratak na ograničavanje pristupa za /viewlog Kôd poglavlja 10, 1 od xv

14 sadržaj Šta da se radi kad stvari krenu naopako Stvari kreću naopako, stalno bez obzira na to koliko je vaš kôd dobar. Uspešno ste uradili sve primere u ovoj knjizi, pa ste verovatno uvereni da sav do sada prikazani kôd funkcioniše. Ali da li to znači da je taj kôd robustan? Verovatno nije. Pisati kôd polazeći od pretpostavke da se nikada neće desiti ništa loše je (u najboljem slučaju) naivno. U najgorem slučaju, to je opasno, pošto nepredviđene stvari mogu da se dogode (i događaju se). Mnogo je bolje da kada kodirate budete oprezni, a ne previše samouvereni. Potrebna je obazrivost da bi vaš kôd radio ono što želite da on uradi, kao i da pravilno reaguje ako stvari krenu naopako. U ovom poglavlju, nećete videti samo šta sve može da krene naopako, nego ćete takođe naučiti šta da uradite kada se to desi (a često i pre nego što se desi). 11obrada izuzetaka... Exception +-- StopIteration +-- StopAsyncIteration +-- ArithmeticError +-- FloatingPointError +-- OverflowError +-- ZeroDivisionError +-- AssertionError +-- AttributeError +-- BufferError +-- EOFError... Baze podataka nisu uvek dostupne Napadi sa Veba su prava muka Ulaz/izlaz je (ponekad) spor Vaš poziv funkcije može da ne uspe Za kôd sklon greškama uvek koristite Try try jednom, ali except više puta Hendler koji hvata sve izuzetke Učenje o izuzecima iz sys Hendler koji hvata sve izuzetke, ponovo Vraćanje na kôd naše veb aplikacije Tiha obrada izuzetaka Obrada drugih grešaka baze podataka Izbegavajte tesno spojen kôd Modul DBcm, ponovo Pravljenje namenskih izuzetaka Šta još može da bude problem sa kodom DBcm? Obrada za SQLError je drugačija Podizanje izuzetka SQLError Brza rekapitulacija: dodavanje robustnosti Kako izaći na kraj sa čekanjem? Zavisi Kôd poglavlja 11, 1 od xvi

15 11 3 /4 nešto o nitima Bavimo se čekanjem sadržaj Vaš kôd se ponekad dugo izvršava. Zavisno od toga ko primećuje, to može i ne mora da bude problem. Ako nekom kodu treba 30 sekundi da obavi svoj posao iza scene, to čekanje ne mora da bude problem. Međutim, ako vaš korisnik čeka da vaša aplikacija odgovori, pa to potraje 30 sekundi, svako će da primeti. Šta treba da uradite da biste rešili ovaj problem, zavisi od toga šta pokušavate da uradite (i ko je taj koji čeka). U ovom kratkom poglavlju, ukratko opisujemo neke opcije, zatim razmatramo jedno rešenje na aktuelno pitanje: šta se dešava ako nešto previše traje? Čekanje: šta da se radi? Kakvi su vam upiti nad bazom podataka? INSERT i SELECT se razlikuju Raditi više stvari u isto vreme Nemojte da se prestravite: koristite niti Idemo redom: bez panike Ne brinite o maleru: Flask može da pomogne Da li je vaša veb aplikacija sada robustna? Kôd poglavlja 11¾, 1 od Kôd poglavlja 11¾, 2 od Čekajte! xvii

16 sadržaj 12 napredna iteracija Brze petlje Često je neverovatno koliko vremena naši programi provedu u petljama. To ne iznenađuje, pošto većina programa postoji zato da bi veoma brzo nešto radila mnogo puta. Kada je u pitanju optimizovanje petlji, postoje dva pristupa: (1) unaprediti sintaksu petlji (da bi se petlje lakše definisale), i (2) unaprediti način izvršavanja petlji (da bi one bile brže). U ranim fazama Pythona 2 (to jest, jako, jako davno), dizajneri jezika su dodali jedan element jezika koji implementira oba pristupa, a on ima jedno pomalo čudno ime: comprehension skraćen način generisanja programskim putem. Ali nemojte dozvoliti da vas to čudno ime odbije: kad budete proradili ovo poglavlje, vi ćete se čuditi kako ste do sada uspevali da živite bez toga. Čitati CSV podatke kao liste Čitati CSV podatke kao rečnike Strip, zatim Split na sirovim podacima Pazite kada ulančavate pozive metoda Transformisanje podataka u format koji vam je potreban Transformisanje u rečnik listi Uočavanje šablona za liste Konvertovanje šablona u skraćeni oblik Pogledajte skraćeno generisanje malo bolje Skraćeno generisanje rečnika Proširite skraćeno generisanje filterima Rešavanje komplikacije na Pythonov način Skraćeno generisanje skupova na delu Šta je sa skraćenim generisanjem n-torki? Zagrada oko koda == generator Skraćeno generisanje liste u obradi URL-a Obrada URL-a pomoću generatora Definišite šta vaša funkcija treba da radi Povinujte se sili generatorskih funkcija Praćenje generatorske funkcije, 1 od Jedno završno pitanje Kôd poglavlja Vreme je da se ide xviii

17 sadržaj a instalacija Instaliranje Pythona Idemo redom: hajde da instaliramo Python na vaš računar. Bilo da koristite Windows, Mac OS X, ili Linux, Python je sve predvideo. Način instaliranja na svakoj od tih platformi je specifičan za način rada svakog od tih operativnih sistema (znamo...užas, zar ne?), a Pythonova zajednica se trudi da obezbedi instalere za sve popularne sisteme. U ovom kratkom dodatku, vodimo vas kroz instaliranje Pythona na vaš računar. Instaliramo Python 3 na Windows Isprobajte Python 3 na Windowsu Dodaci za Python 3 na Windowsu Instalirajte Python 3 na Mac OS X (macos) Provera i konfigurisanje Pythona 3 za Mac OS X Instalirajte Python 3 na Linux b PythonAnywhere Isporuka vaše veb aplikacije Na kraju poglavlja 5, izneli smo tvrdnju da za isporuku vaše veb aplikacije na oblak treba svega 10 minuta. Sada je vreme da ispunimo to obećanje. U ovom dodatku, provešćemo vas kroz proces isporučivanja vaše veb aplikacije na PythonAnywhere, od početka do kraja za oko 10 minuta. PythonAnywhere je omiljen u zajednici Python programera, a nije ni teško videti zašto:radi tačno onako kao što očekujete, ima odličnu podršku za Python (i Flask), a što je najbolje možete da počnete sa iznajmljivanjem svoje veb aplikacije sasvim besplatno. Hajde da pregledamo PythonAnywhere.. Tačka 0: malo pripreme Tačka 1: prijavite se na PythonAnywhere Tačka 2: otpremite vaše fajlove na oblak Tačka 3: izdvojite i instalirajte svoj kôd Tačka 4: napravite početnu veb aplikaciju, 1 od Tačka 5: konfigurišite svoju veb aplikaciju Tačka 6: isprobajte svoju veb aplikaciju koja se nalazi u oblaku!. 537 xix

18 sadržaj c deset nepomenutih stvari Uvek ima još šta da se nauči Nismo ni imali nameru da pokušamo da obuhvatimo sve. Cilj ove knjige je bio da vam pokažemo dovoljno Pythona da bismo vas što je brže moguće stavili u pogon. Mogli smo da obuhvatimo još mnogo više, ali nismo. U ovom dodatku, opisujemo najvažnijih 10 stvari koje smo da smo imali još nekih 600 stranica mogli da obradimo. Neće vas svih tih 10 stvari zanimati, ali pregledajte ih na brzinu da biste proverili da li smo slučajno pogodili nešto što ste želeli, ili pružili odgovor na neko pitanje koje vas muči. Sve programske tehnologije u ovom dodatku su ugrađene u Python i njegov interpreter. 1. A Python 2? Virtuelna programska okruženja Više o objektnom orijentisanju Formati za stringove i slično Sortiranje stvari Više iz standardne biblioteke Istovremeno izvršavanje koda Grafički korisnički interfejsi Tkinter (i zabava sa Turtles) Nije gotovo dok nije testirano Otklanjanje grešaka, opet i opet xx

19 sadržaj d deset neobrađenih projekata Još neke alatke, biblioteke i moduli Znamo šta ste pomislili kad ste videli naslov ovog dodatka. Zbog čega nisu prošli dodatak nazvali: Dvadeset nepomenutih stvari? Zašto sad još 10? U prošlom dodatku, ograničili smo diskusiju na ono što je već ugrađeno u Python (ono zbog čega se kaže da se jezik isporučuje sa baterijama ). U ovom dodatku, bacamo udicu mnogo dalje, opisujemo gomilu tehnologija koje su vam na raspolaganju zbog toga što Python postoji. Tu ima mnogo dobrih stvari, pa isto kao za prošlo poglavlje brzi pregled vam neće ni najmanje škoditi. 1. Alternative za prompt >>> Alternative za IDLE Jupyter Notebook: IDE okruženje na Vebu Nauka o podacima Tehnologije za veb razvoj Rad sa veb podacima Još neki izvori podataka Alatke za programiranje Kivy: naš predlog za najbolji projekat svih vremena Alternativne implementacije xxi

20 sadržaj euključite se Python zajednica Python je mnogo više od odličnog programskog jezika. To je takođe jedna odlična zajednica. Python zajednica je gostoljubiva, raznolika, otvo rena, druželjubiva, ona deli i daje. Prosto nas čudi da do danas nikome nije palo na pamet da to stavi na čestitku! Ozbiljno, programiranje u Pythonu nije samo jezik. Oko Pythona je nastao ceo ekosistem, u obliku izvrsnih knjiga, blogova, veb sajtova, konferencija, sretanja, korisničkih grupa i ličnosti. U ovom dodatku, mi snimamo Python zajednicu da vidimo šta ona nudi. Nemojte samo da sedite i programirate sami: uključite se! BDFL: Benevolent Dictator for Life Tolerantna zajednica: poštovanje raznovrsnosti Python potkasti Zen of Python xxii

21 1 osnove Brzi početak Šta je to Python? Neotrovna mija? Trupa komičara s kraja? ro ramski je ik? ože! To je sve to! eko je oči ledno proveo previše dana na moru... Počnite da programirate u jeziku P thon što je pre moguće. U ovom poglavlju, predstavljamo osnove programiranja u jeziku Python, a to radimo u tipičnom stilu serije Bez oklevanja: odmah uskačemo. Nakon prvih par stranica, izvršićete prvi primer programa. Na kraju poglavlja, nećete samo biti u stanju da izvršite primer programa, nego ćete i razumeti njegov kôd (i više od toga). Usput, učićete o nekoliko stvari po kojima se programski jezik Python odlikuje. Dakle, da više ne gubimo vreme. Okrenite stranicu, pa da počnemo!! ovo je novo poglavlje 4 1

22 r a Raskid sa tradicijom Kad uzmete bilo koju knjigu o nekom programskom jeziku, prvo što ćete videti je primer Hello World. nam poče ete od primera ello orld! ar ne? Ne, nećemo. Ovo je knjiga iz serije Bez oklevanja, a mi ovde radimo drugačije. U drugim knjigama, običaj je da se počne od opisa programa Hello World u dotičnom jeziku. Međutim, sa Pythonom biste imali samo jednu naredbu kojom se poziva Pythonova ugrađena funkcija print, koja bi prikazala uobičajenu poruku Hello, World! na ekranu. Skoro da je previše uzbudljivo... a ne biste naučili takoreći ništa. Dakle, ne, nećemo da vam pokažemo program Hello World u jeziku Python, pošto zaista ništa ne biste iz njega naučili. Krenućemo drugim putem... renućemo od žešćeg primera Naš plan za ovo poglavlje je da počnemo od jednog primera koji je donekle veći, pa je prema tome korisniji nego primer Hello World. Odmah ćemo vam priznati da je naš primer pomalo neprirodan: on radi nešto, ali na duge staze možda i nije naročito koristan. Priznajemo to, ali odabrali smo takav primer koji će nam omogućiti da u što je moguće kraćem vremenu obradimo što više elemenata jezika Python. A obećavamo da ćete, kada budete proradili taj prvi primer programa, znati dovoljno da biste mogli da napišete Hello World u jeziku Python bez naše pomoći. 2 a j

23 osnove dmah uskačemo Ako još niste instalirali neku verziju Pythona 3 na svoj računar, sada zastanitei pređite na Dodatak A gde se nalaze uputstva za instaliranje korak po korak (utrošićete samo par minuta, obećavam). Pošto instalirate najnoviji Python 3, imate sve što je potrebno da biste počeli da programirate Python, a kao pomoć u tome za sada koristićemo Pythonovo ugrađeno IDE (integrated development environment) okruženje. P thonov I E je sve što vam je potrebno Kada na svoj računar instalirate Python 3, dobijate i jedno jednostavno ali upotrebljivo IDE okruženje po imenu IDLE. Mada ima mnogo različitih načina da se izvršava Python kôd (a upoznaćete ih mnogo u ovoj knjizi), IDLE je sve što vam je potrebno kada tek počinjete. Pokrenite IDLE na vašem računaru, zatim upotrebite opciju menija File... New File... da otvorite nov prozor za uređivanje (engl. editing window). Kad smo to uradili na našem računaru, dobili smo dva prozora: jedan se zove Python Shell, a drugi Untitled: Ovaj prozor se prvi otvara. Nazva emo ga prvi prozor. Po to izaberete File... Ne File..., pojavljuje se ovaj prozor. Nazva emo ga drugi prozor. Pokrenete IDLE, zatim birate File... Ne File... i na ekranu ete dobiti dva prozora. vi ste ovde 4 3

24 r a nderstanding I E s indo s Oba ova IDLE prozora su važna. Prvi prozor, Python Shell, je jedno REPL okruženje koje se koristi za izvršavanje isečaka Python koda, obično ćete izvršavati jednu po jednu naredbu. Što duže budete koristili Python, sve ćete više voleti Python Shell, i mnogo ćete ga koristiti dok budete napredovali kroz ovu knjigu. Međutim, za sada nas više zanima drugi prozor. Drugi prozor, Untitled, je prozor za uređivanje teksta koji može da se koristi za pisanje celih Python programa. To nije najbolji editor na svetu (pošto ta čast pripada <upišite ovde ime vašeg omiljenog tekst editora>), ali IDLE editor je prilično upotrebljiv i ima gomilu ugrađenih modernih mogućnosti, uključujući isticanje delova sintakse bojom (engl. color-syntax handling) i slično. Pošto mi odmah uskačemo, hajde da upišemo jedan mali Python program u ovaj prozor. Kada završite sa upisivanjem sledećeg koda, upotrebite opciju menija File... Save... da sačuvate svoj program pod imenom odd.py. Pazite da upišete kôd tačno kao što stoji ovde: Ne brinite za sada šta ovaj kôd radi. Samo ga prepišite u prozor za ure ivanje. Ne zaboravite da ga sačuvate kao odd. p pre nego to krenete dalje. Pa... šta sad? Ako ste bar malo kao mi, jedva čekate da izvršite ovaj kôd, zar ne? Hajde da to sada uradimo. Sa kodom u prozoru za uređivanje (kao što je prikazano gore), pritisnite taster F5 na tastaturi. Mogu se dogoditi različite stvari... Za štrebere Šta znači REPL? To je štreberska skraćenica za read-eval-print-loop, (petlja čitaj-izračunaj-štampaj) i opisuje jednu interaktivnu programersku alatku koja omogućava da do mile volje eksperimentišete sa isečcima koda. Saznaćete mnogo više nego što vam je potrebno ako posetite wikipedia.org/wiki/read-eval-print_loop. 4 a j

25 osnove ta se dalje doga a Ako se vaš kôd izvršio bez greške, pređite na sledeću stranu, i nastavite. Ako ste zaboravili da sačuvate svoj kôd pre nego što ste pokušali da ga izvršite, IDLE se buni, pošto svaki novi kôd morate najpre da sačuvate u fajl. Ako niste sačuvali kôd, ugledaćete poruku sličnu ovoj: Podrazumevano, IDL ne e da izvrši kôd koji nije sačuvan. Pritisnite dugme OK, zatim odredite ime za vaš fajl. Mi smo za ime fajla izabrali odd, i dodali smo ekstenziju.py (pošto je to Pythonova konvencija koje se vredi držati): Ako se vaš kôd sada izvršio (pošto ste ga sačuvali), pređite na sledeću stranu, i nastavite. Međutim, ako negde u kodu imate grešku sintakse, ugledaćete ovu poruku: i možete slobodno za svoj program da izaberete bilo koje ime, ali verovatno je najbolje ako pratite tekst da koristite isto ime kao mi. Pritisnite dugme OK, zatim pogledajte gde IDLE misli da se greška sintakse nalazi: tražite veliki crveni okvir u prozoru za uređivanje. Proverite da li je vaš kôd tačno isti kao naš, sačuvajte ponovo svoj fajl, a zatim pritisnite F5 i tako zatražite da IDLE ponovo izvrši vaš kôd. Kao što bez sumnje vidite, IDLE nije naročito ve t da kaže koja je to gre ka sintakse. Ali pritisnite OK, pa e jedan veliki crveni okvir da ukaže na mesto na kojem IDLE misli da se problem nalazi. vi ste ovde 4 5

26 r a Pritisnite za izvršavanje koda Pritisak na F5 izvršava kôd u trenutno izabranom IDLE prozoru za uređivanje teksta naravno, pod pretpostavkom da vaš kôd ne sadrži grešku pri izvršavanju. Ako imate grešku pri izvršavanju, videćete Traceback poruku o grešci (crvene boje). Pročitajte poruku, zatim se vratite u prozor za uređivanje i proverite da li je kôd koji ste uneli tačno isti kao naš. Sačuvajte ispravljeni kôd, zatim ponovo pritisnite F5. Kada smo pritisnuli F5, Python Shell je postao aktivni prozor, i evo šta smo videli: Od sada pa nadalje, mi emo IDL prozor za ure ivanje teksta zvati jednostavno prozor za ure ivanje. Ne brinite ako ugledate neku drugu poruku. Nastavite sa čitanjem i sazna ete za to je tako. Zavisno od toga koliko je sati, mogli ste umesto ove poruke da ugledate poruku Not an odd minute. Ne brinite ako jeste, pošto ovaj program prikazuje jednu od te dve poruke zavisno od toga da li je vrednost minuta u tekućem vremenu vašeg računara neparan broj (engl. odd) (pa, rekli smo da je ovaj primer neprirodan, zar ne?). Ako sačekate jedan minut, zatim pritisnete prozor za uređivanje da biste ga izabrali, pa ponovo pritisnete F5, vaš kôd će se ponovo izvršiti. Ovog puta ćete videti drugu poruku (pod uslovom da ste sačekali zahtevani minut). Slobodno izvršavajte ovaj kôd koliko god često želite. Evo šta smo videli kada smo mi (vrlo strpljivo) sačekali zahtevani minut: Pritisak na F5 dok ste u prozoru za ure ivanje izvršava vaš kôd, zatim prikazuje rezutat u Python Shellu. Hajde da neko vreme posvetimo učenju kako se ovaj kôd izvršava. 6 a j

27 osnove d se izvršava odmah Kada IDLE zatraži da Python izvrši kôd koji se nalazi u prozoru za uređivanje, Python počne na vrhu fajla i smesta počne sa izvršavanjem. Za one od vas koji prelaze na Python sa nekog od jezika koji su kao C, obratite pažnju na to da u jeziku Python ne postoji pojam funkcije ili metoda main(). Takođe ne postoji ni pojam uobičajenog procesa uredi-prevedi-poveži-izvrši (engl. edit-compile-link-run). Kad koristite Python, vi svoj kôd uredite, sačuvate i odmah izvršite. tanite malo. ekli ste a teva da t on i vrši kôd...ali ar nije t on pro ramski je ik a nje ovo okruženje? ko je tako ko u stvari ovde sprovodi i vršavanje?!? h, u pravu ste. To zbunjuje. Evo šta morate da znate: Python je ime programskog jezika, a IDLE je ime Pythonovog ugrađenog IDE okruženja. To smo konstatovali, ali kada instalirate Python 3 na svoj računar, instalira se i jedan interpreter. To je tehnologija koja izvršava vaš Python kôd. To što zbunjuje je da se ovaj interpreter takođe zove Python. U stvari, svi bi morali da koriste ispravnije ime za ovu tehnologiju, a to bi bilo Pythonov interpreter. Ali, nažalost, niko to ne radi. Već od ovog časa, u knjizi ćemo koristiti reč Python za sam jezik, a reč interpreter za tehnologiju koja izvršava vaš Python kôd. IDLE se odnosi na IDE okruženje, koje uzima vaš Python kôd i izvršava ga kroz interpreter. Ovde stvarni posao obavlja interpreter nema G L UPIH PITANJA P: Da li je Pythonov interpreter nešto kao Java VM? O: I j e s te i n ij e. J e s te, p o tom e što in te r p r e te r izvršava vaš kôd. Ali nije, po načinu na koji to radi. U Pythonu ne postoji postupak da se vaš izvorni kôd prevede u izvršni. Za razliku od ave VM, in te r p r e te r n e iz v r šav a.class f aj l ov e, n e g o p r os to iz v r šav a v aš kô d.. P: li, prevođenje ipak mora da se desi u nekoj fazi? O: D a, de šav a s e, al i in te r p r e te r n e otkr iv a taj p r oc e s p r e d P y th on p r og r am e r om ( p r e d v am a). S v i detalji se rešavaju za vas. Vi samo vidite kako se vaš kôd izvršava dok IDL obavlja sav težak posao i komunicira sa interpreterom u vaše ime. Pričaćemo više o ovom procesu kako knjiga bude napredovala. vi ste ovde 4 7

28 r a Izvršavanje koda, naredbu po naredbu Ovde je ponovo programski kôd sa strane 4: from datetime import datetime odds = [ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59 ] right_this_minute = datetime.today().minute if right_this_minute in odds: print("this minute seems a little odd.") else: print("not an odd minute.") udimo mi P thonov interpreter Hajde da se malo zadržimo i prođemo kroz ovaj kôd na isti način na koji to radi interpreter, red po red, od vrha do dna fajla. Prvom linijom koda se uvozi (engl. import) neka već postojeća funkcionalnost iz Pythonove standardne biblioteke, a to je jedno veliko skladište softverskih modula koji sadrže mnogo unapred izrađenog (i veoma kvalitetnog) koda za višekratnu upotrebu. U našem kodu, mi smo konkretno zatražili jedan podmodul modula datetime iz standardne biblioteke. Činjenica da se podmodul takođe zove datetime malo zbunjuje, ali to tako funkcioniše. Podmodul datetime obezbeđuje mehanizam kojim se saznaje vreme, kao što ćete videti na sledećih nekoliko stranica. Module shvatite kao kolekciju povezanih funkcija. Ovo je ime podmodula from datetime import datetime odds = [ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59 ]... Ne zaboravite: interpreter počne na vrhu fajla i napreduje ka dnu, izvr avaju i red po red Python koda. Ovo je ime modula iz standardne biblioteke iz koje se uvozi višekratno upotrebljiv kôd. Kada u ovoj knjizi ho emo posebno da vam skrenemo pažnju na neki red koda, mi ga istaknemo (kao to je to učinjeno ovde). 8 a j

29 osnove unkcije Moduli tandardna biblioteka Pythonova standardna biblioteka je vrlo bogata, i sadrži mnogo koda za višekratnu upotrebu. Pogledajmo još jedan modul, koji se zove os, koji pruža način nezavisan od platforme da se komunicira sa osnovnim operativnim sistemom (vratićemo se brzo na modul datetime). Koncentrišimo se samo na jednu funkciju, getcwd, koja kad se pozove vraća vaš trenutni radni direktorijum. Evo kako ćete obično da uvezete (engl. import), a zatim pozovete (engl. invoke), ovu funkciju u Python programu: Uvezete funkciju iz njenog modula... from os import getcwd where_am_i = getcwd()...a zatim je pozovete prema potrebi Kolekcija povezanih funkcija sačinjava modul, a u standardnoj biblioteci ima mnogo modula: Funkcija......je deo modula......koji je deo standardne biblioteke. getc d mkdir getc d chmod os Funkcije su u modulima u standardnoj biblioteci. mkdir getc d chmod mkdir mkdir getc d chmod getc d chmod mkdir mkdir getc d chmod os getc d chmod mkdir getc d chmod json enum random mkdir getc d chmod mkdir getc d chmod mkdir getc d chmod mkdir getc d chmod time mkdir getc d chmod s s datetime Ne brinite u ovoj fazi ta radi svaki od tih modula. Na slede oj strani imamo kratak pregled nekih od njih, a kasnije u knjizi emo videti i neke od ostalih. vi ste ovde 4 9

30 r a Standardna biblioteka izbliza Standardna biblioteka je dragulj u Pythonovoj kruni snabdeva vas modulima za višekratnu upotrebu koji vam pomažu u svemu od, na primer, rada sa podacima, do manipulisanja ZIP arhivama, do slanja e-pošte i rada sa HTML-om. Standardna biblioteka čak sadrži i veb server, kao i popularnu tehnologiju SQLite za baze podataka. U ovom prikazu Izbliza, predstavićemo samo nekoliko najčešće korišćenih modula iz standardne biblioteke. Da biste pratili, možete ove primere da upišete onako kako su prikazani na svoj prompt (u IDLE). Ako vam je trenutno otvoren IDLE prozor za uređivanje, izaberite na meniju Run... Python Shell da biste dobili prompt. Počnimo od malo učenja o sistemu na kojem radi vaš interpreter. Mada se Python diči time da je nezavisan od platforme, po tome što kôd pisan na jednoj platformi može da se izvrši (uglavnom neizmenjen) na drugoj, ponekad je važno da se zna da se izvršava, recimo, na sistemu Mac OS X. Modul sys postoji da bi vam pomogao da saznate više o sistemu vašeg interpretera. Evo kako ćete odrediti identitet operativnog sistema u osnovi, tako što ćete najpre da uvezete modul sys, a zatim da pristupite atributu platform: >>> import sys >>> sys.platform 'darwin' Modul sys je dobar primer modula za višekratnu upotrebu koji pre svega obezbeđuje pristup unapred postavljenim atributima (kao što je platform). Kao drugi primer, evo kako se određuje koja verzija Pythona se izvršava, što predajemo funkciji print da je prikaže na ekranu: >>> print(sys.version) (v3.4.3:9b73f1c3e601, Feb , 02:52:03) [GCC (Apple Inc. build 5666) (dot 3)] Modul os je dobar primer modula za višekratnu upotrebu koji pre svega pruža funkcionalnost, a takođe i način nezavisan od sistema na koji vaš Python kôd može da komunicira sa operativnim sistemom u osnovi, bez obzira na to o kojem je tačno operativnom sistemu reč. Na primer, evo kako da saznate ime foldera u kojem vaš kôd radi, pomoću funkcije getcwd. Kao sa svakim modulom, najpre uvezete modul pre nego što pozovete funkciju >>> import os >>> os.getcwd() '/Users/HeadFirst/CodeExamples' Promenljivima okruženja vašeg sistema možete da pristupite kao celini (pomoću atributa environ) ili pojedinačno (pomoću funkcije getenv): >>> os.environ 'environ({'xpc_flags': '0x0', 'HOME': '/Users/HeadFirst', 'TMPDIR': '/var/ folders/18/t93gmhc546b7b2cngfhz10l00000gn/t/',... 'PYTHONPATH': '/Applications/ Python 3.4/IDLE.app/Contents/Resources',... 'SHELL': '/bin/bash', 'USER': 'HeadFirst'})' >>> os.getenv('home') '/Users/HeadFirst' Uvezite modul koji vam treba, zatim pristupite atributu koji vas zanima. Izgleda da izvr avamo dar in, a to je ime jezgra sistema Mac OS X. Uvezite modul, zatim pozovite funkciju koja vam treba. Konkretnom imenovanom atributu (iz podataka sadržanih u environ ) možete da pristupite sa getenv. Tu je dosta informacija o verziji Pythona koju izvr avamo, uključuju i to da je verzija Atribut environ sadrži mnogo podataka. 10 a j

31 osnove Standardna biblioteka izbliza, nastavak Često se radi sa datumima (i vremenima), a standardna biblioteka ima modul datetime koji pomaže kada radite sa tom vrstom podataka. Funkcija date.today daje današnji datum: >>> import datetime >>> datetime.date.today() datetime.date(2015, 5, 31) Ipak, to je zaista čudan način da se prikaže današnji datum, zar ne? Vrednostima dana (engl. day), meseca (engl. month) i godine (engl. year) možete da pristupite zasebno ako na poziv funkcije date.today dodate pristup atributu: >>> datetime.date.today().day 31 >>> datetime.date.today().month 5 >>> datetime.date.today().year 2015 Današnji datum Možete takođe da pozovete funkciju date.isoformat i predate joj današnji datum, da bi se prikazala mnogo razumljivija verzija današnjeg datuma, koju funkcija isoformat konvertuje u string: >>> datetime.date.isoformat(datetime.date.today()) ' ' Komponente dana njeg datuma Današnji datum u formatu string A tu je još i vreme, kojeg izgleda niko od nas nema dovoljno. Može li standardna biblioteka da nam kaže koliko je sati? Da. Pošto uvezete modul time, pozovite funkciju strftime i navedite kako želite da se vreme prikaže. U ovom slučaju, zanima nas tekuće vreme u u satima (%H) i minutima (%M) u formatu od 24-časa: >>> import time >>> time.strftime("%h:%m") '23:55' A da utvrdimo koji je dan u nedelji i da li je pre podne ili popodne? Pomoću specifikacije %A %p, funkcija strftime upravo to radi: >>> time.strftime("%a %p") 'Sunday PM' Gospode! Zar je toliko sati? Sad smo utvrdili da je pet minuta do pono i u nedelju uveče...vreme za spavanje, možda Kao poslednji primer funkcionalnosti za višekratnu upotrebu iz standardne biblioteke, zamislite da imate neki HTML a brine vas da on možda sadrži neke potencijalno opasne <script> oznake. Umesto da raščlanjujete HTML da biste otkrili i uklonili te oznake, zašto ne biste šifrovali sve te neugodne uglaone zagrade pomoću funkcije escape iz modula html? Ili možda imate neki šifrovani HTML koji želite da vratite u prvobitni oblik? Funkcija unescape može to da uradi. Ovde su primeri za oboje: >>> import html >>> html.escape("this HTML fragment contains a <script>script</script> tag.") 'This HTML fragment contains a <script>script</script> tag.' >>> html.unescape("i Python's <standard library>.") "I Python's <standard library>." Konvertovanje u HTML ifrovani tekst i obratno vi ste ovde 4 11

32 r a Isporučuje se sa baterijama retpostavljam da se misli na ovo kad se kaže t on se isporučuje sa baterijama ar ne? Da. Na to se misli. Pošto je standardna biblioteka toliko bogata, razmišljanje je sve što vam treba da biste bili odmah produktivni u tom jeziku čim instalirate Python. Za razliku od Božića ujutro, kad raspakujete novu igračku i razočarano utvrdite da se ne isporučuje sa baterijama, Python vas neće razočarati on se isporučuje sa svime što je potrebno da biste krenuli. I to se ne odnosi samo na module u standardnoj biblioteci: ne zaboravite da je uključen IDLE, koji predstavlja malo ali upotrebljivo IDE okruženje, pravo iz kutije. Vi treba samo da kodirate. nema G L UPIH PITANJA P: Kako da utvrdim šta radi neki konkretan modul iz standardne biblioteke O:.Python dokumentacija sadrži sve odgovore n a p itan j a o s tan dar dn oj b ib l iote c i. Ovo je početna tačka: ht t ps: / / docs. py t hon. org / 3 / library / index. ht ml. Za štrebere Standardna biblioteka nije jedino mesto na kojem ćete naći izvrsne module koje možete da uvezete i koristite u svom kodu. Python zajednica takođe podržava jednu uspešnu kolekciju modula drugih dobavljača, od kojih ćemo neke istražiti kasnije u knjizi. Ako želite unapred da pogledate, potražite spremište koje održava zajednica: 12 a j

33 osnove trukture podataka su ugra ene Pored toga što se isporučuje sa prvoklasnom standardnom bibliotekom, Python ima takođe neke moćne ugrađene strukture podataka. Jedna od njih je lista (engl. list), koja može da se smatra veoma moćnim nizom (engl. array). Kao što se u mnogim drugim jezicima nizovi stavljaju u uglaste zagrade ([]), isto je sa listama u Pythonu. Sledeća tri (dole prikazana) reda koda u našem programu dodeljuju unapred definisanu listu neparnih brojeva jednoj promenljivoj po imenu odds. U ovom kodu, odds je jedna lista celih brojeva, ali liste u Pythonu mogu da sadrže bilo koje podatke i to bilo kojeg tipa, a možete čak da mešate vrste podataka u istoj listi (ako želite). Obratite pažnju na to kako se lista odds širi na tri reda, i pored toga što je to jedna naredba. To je u redu, pošto interpreter neće smatrati da se naredba završila sve dok ne pronađe zatvorenu uglastu zagradu (]) koja je par otvorenoj ([). Obično, kraj reda u t nu nači i kra nare e, ali postoje izuzeci od tog opšteg pravila, a liste u više redova su upravo jedan od tih izuzetaka (ostale ćemo videti kasnije). from datetime import datetime odds = [ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59 ]... Ovo je nova promenljiva po imenu odds, kojoj se dodeljuje lista neparnih brojeva. Isto kao nizovi, liste mogu da dr e svaku vrstu podataka. Ovo je lista neparnih brojeva, obuhva ena ugla stom zagradom. To je jedna naredba koja se proteže na tri reda, a to je u redu. Sa listama može da se radi mnogo stvari, ali ćemo dalji opis odgoditi do jednog kasnijeg poglavlja. Za sada je dovoljno da znate da ova lista sada postoji, da je ona dodeljena promenljivoj odds (zahvaljujući primeni operatora dodeljivanja, =), i da sadr i prikazane brojeve. P thon promenljive se dodeljuju dinamički Dok nismo prešli na sledeći red koda, možda je potrebno još par reči o promenljivima, pogotovo ako ste vi neki od programera koji su možda navikli na promenljive koje su unapred deklarisane sa informacijom o tipu, pre njihovog korišćenja (kao što je to slučaj u statički tipiziranim programskim jezicima). U Pythonu, promenljive počnu da postoje kada ih prvi put upotrebite, a njihov tip ne mora unapred da se deklariše. Python promenljive preuzimaju informaciju o tipu od tipa objekta koji im se dodeli. U našem programu, promenljivoj odds se dodeljuje jedna lista brojeva, pa je u ovom slučaju odds jedna lista. Pogledajmo jednu drugu naredbu dodeljivanja promenljivoj. Srećom, to je slučajno i sledeći red koda u našem programu. t on sadr i sve uo ičajene operatore, uključujući,,,,,, a tako e i operator dodeljivanja. vi ste ovde 4 13

34 r a Pozivanjem metoda dobiju se rezultati Treći red koda u našem programu je još jedna naredba dodeljivanja. Za razliku od prethodnog reda, ova naredba ne dodeljuje promenljivoj jednu strukturu podataka, već jednoj drugoj novoj promenljivoj, po imenu right_this_minute, dodeljuje rezultat pozivanja jednog metoda. Pogledajte još jednom treći red koda: Ovde se pravi još jedna promenljiva i dodeljuje joj se vrednost. from datetime import datetime odds = [ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59 ] right_this_minute = datetime.today().minute if right_this_minute in odds: print("this minute seems a little odd.") else: print("not an odd minute.") Pozivanje unkcionalnosti ugra enih modula Treći red koda poziva jedan metod po imenu today koji potiče iz podmodula datetime, a on je je i sam deo modula datetime (već smo rekli da je ova strategija imenovanja zaista malo zbunjujuća). Na osnovu standardnih postfiksnih zagrada: ()se vidi da se poziva today. Ovaj poziv generi e vrednost koja e se dodeliti promenljivoj. Kad se pozove today, on vraća vremenski objekat, koji sadrži mnogo delova informacija o tekućem vremenu. To su atributi tekućeg vremena, kojima možete da pristupate uobičajenom sintaksom n ta i e sa tačk (engl. dot-notation). U ovom programu, nas zanima atribut minuta, kojem možemo da pristupimo kada na pozivanje metoda dodamo.minute, kao što se vidi gore. Rezultujuća vrednost se zatim dodeljuje promenljivoj right_this_minute. Ovaj red koda možete da shvatite kao: napraviti objekat koji predstavlja današnje vreme, zatim izdvojiti vrednost atributa minute pre nego što se ona dodeli promenljivoj. Primamljivo bi bilo podeliti taj red koda na dva reda da bi se lakše shvatio, na sledeći način: Najpre, utvrditi teku e vreme... time_now = datetime.today() right_this_minute = time_now.minute Kasnije u knjizi će biti još ove sintakse notacije sa tačkom....zatim izdvojiti vrednost minuta. Možete to da uradite (ako hoćete), ali većina Python programera više voli da ne pravi privremene promenljive (u ovom primeru, time_now) osim ako su one potrebne negde kasnije u programu. 14 a j

35 osnove dlučivanje kada da se izvrše blokovi koda U ovoj fazi imamo listu brojeva po imenu odds (neparni). Takođe imamo minut po imenu right_this_minute. Da bismo utvrdili da li je vrednost trenutnog minuta sačuvana u right_this_minute neparan broj, potreban nam je način da saznamo da li se ona nalazi u listi odds. Ali kako da to uradimo? Ispostavlja se da Python tu vrstu stvari rešava vrlo jednostavno. Pored toga što sadrži sve uobičajene operatore poređenja koje očekujete u svakom programskom jeziku (kao što su >, <, >=, <=, i tako dalje), Python ima i nekoliko vlastitih super operatora, od kojih je jedan in. Operator in ispituje da li je jedna stvar unutar (engl. inside) druge. Pogledajte sledeći red koda u našem programu, gde se operator in koristi za proveravanje da li se right_this_minute nalazi unutar liste odds:... right_this_minute = datetime.today().minute if right_this_minute in odds: print("this minute seems a little odd.")... Operator in je mo an. On može da utvrdi da li je jedna stvar unutar druge. Ova naredba if može da ispadne bilo True, bilo False. Operator in može da vrati True (tačno) ili False (netačno). Kao što biste očekivali, ako se vrednost right_this_minute nalazi u odds, naredba if ispada True, pa će se izvršiti blok koda pridružen naredbi if. l k i se u t nu lak u ča a u t su u ek u učeni. U našem programu postoje dva bloka, od kojih svaki sadrži samo jedan poziv funkcije print. Ta funkcija može da prikaže poruke na ekranu (i videćemo da se često koristi u celoj ovoj knjizi). Kad ste upisivali ovaj programski kôd u prozor za uređivanje, možda ste primetili da vam IDLE pomaže da ne pogrešite tako što vrši automatsko uvlačenje. To je vrlo korisno, ali obratite pažnju na to da li je IDLE izvršio uvlačenje baš kao što ste vi hteli:... right_this_minute = datetime.today().minute if right_this_minute in odds: print("this minute seems a little odd.") else: print("not an odd minute.") Funkcija print prikazuje poruku na standardnom izlazu (tj., na va em ekranu). Ovde je jedan blok koda. Napomena: k d je uvučen. A ovde je jo jedan blok koda. Jeste li primetili da ovde nema vitičastih zagrada? Napomena: i on je uvučen. vi ste ovde 4 15

36 r a ta je bilo sa vitičastim zagradama Ako ste navikli na programski jezik u kojem se za razgraničavanje blokova koda koriste vitičaste zagrade ({ i }), prvi susret sa blokovima u Pythonu može da vas zbuni, pošto Python ne koristi vitičaste zagrade u tu svrhu. Python koristi uvlačenje za razgraničavanje blokova koda, koje Python programeri nazivaju svita (engl. suite) a ne blok (samo da bi malo zamutili stvari). Nije stvar u tome da se vitičaste zagrade ne koriste u Pythonu. Koriste se, ali kao što ćemo videti u poglavlju 3 vitičaste zagrade se koriste za razgraničavanje podataka, a ne za razgraničavanje sviti (tj., blokova) koda. Svite se u svakom Python programu lako uočavaju, pošto su ti blokovi uvek uvučeni. To vam pomaže da ih brzo prepoznate kada čitate kôd. Drugi vizuelni znak raspoznavanja koji treba da primetite je znak dvotačka (:), koji se koristi kao uvod u svitu pridruženu nekoj od Pythonovih kontrolnih naredbi (kao što su if, else, for, i slične). Videćete mnoge takve primere dok budete napredovali kroz ovu knjigu. votačka uv odi uvučenu svitu koda mesto da ka u blok koda, Python programeri koriste reč svita. praksi se koriste oba naziva, ali stručnja i za Python više vole svita. Dvotačka (:) je važna, po tome što uvodi novu svitu koda koji mora da bude uvučen na desnu stranu. Ako ste zaboravili da uvučete kôd iza dvotačke, interpreter prijavljuje grešku. Ne samo da naredba if u našem primeru ima dvotačku, ima je i naredba else. Ovde je ponovo ceo kôd: from datetime import datetime odds = [ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59 ] right_this_minute = datetime.today().minute if right_this_minute in odds: print("this minute seems a little odd.") else: print("not an odd minute.") Dvotačke uvode uvučene svite. Skoro smo gotovi. Ostaje nam da opišemo samo još jednu naredbu. 16 a j

37 osnove akav else može da bude uz i Skoro smo završili sa kodom našeg programa za primer, jer je preostao da se opiše samo jedan red koda. To nije mnogo veliki red koda, ali je važan: naredba else koja uvodi blok koda koji se izvršava kada odgovarajuća naredba if vrati vrednost False. Pogledajte bolje naredbu else u našem programskom kodu, koja nije uvučena da bi bi bila poravnata sa if delom ove naredbe: idite dvotačku if right_this_minute in odds: print("this minute seems a little odd.") else: print("not an odd minute.") Jeste li primetili da else nije uvučen, da bi bio poravnat sa if retpostavljam da ako postoji else mora da postoji i else i ili se u t onu piše elsei? eoma je česta gre ka da početni i u Pythonu zaborave dvotačku kad prvi put pišu kôd. Ni jedno ni drugo. P thonu se piše elif. Ako imate niz uslova koje proveravate u okviru if naredbe, Python ima elif,a ne samo else. Možete da imate onoliko elif naredbi (svaku sa svojom svitom) koliko vam god treba. Ovde je mali primer u kojem se polazi od toga da je promenljivoj po imenu today prethodno dodeljena string vrednost naziva današnjeg dana (Ako je subota: zabava, inače ako je nedelja: oporavak, inače: rad, rad, rad): if today == 'Saturday': print('party!!') elif today == 'Sunday': print('recover.') else: print('work, work, work.') Tri pojedinačne svite: jedna za if, druga za elif, i konačna koja hvata sve ostalo, za else. vi ste ovde 4 17

38 r a vite mogu da sadrže ugnež ene svite Svaka svita može da sadrži bilo koji broj ugnežđenih svita, koje takođe moraju da budu uvučene. Kada Python programeri pominju ugneždene svite, obično pominju i ni e u lačen a. Početni nivo uvlačenja bilo kojeg programa obično se naziva prvi ili (kao što je u mnogim programskim jezicima uobičajeno da se broji) nivo uvlačenja nula. Naredni nivoi se nazivaju drugi, treći, četvrti, i tako dalje (ili nivo jedan, nivo dva, nivo tri, i tako dalje). Ovde je jedna varijacija primera koda za današnji dan sa prethodne strane. Primetićete kako je ugnežđeno if/else dodato u naredbu if koja se izvršava kada today ima vrednost 'Sunday. Mi takođe pretpostavljamo da postoji još jedna promenljiva po imenu condition i da joj je dodeljena vrednost koja izražava kako se trenutno osećate. Pokazali smo gde je svaka svita, kao i nivo uvlačenja na kojem se nalazi: Ova četiri reda koda su jedna svita. Nivo uvlačenja nula Ovaj pojedinačni red koda je svita. Oba ova if today == 'Saturday': print('party!') elif today == 'Sunday': if condition == 'Headache': print('recover, then rest.') else: print('rest.') else: print('work, work, work.') Nivo uvlačenja jedan Nivo uvlačenja dva Ovaj pojedinačni red koda je svita. pojedinačna reda koda su svite. Važno je da se primeti da je kôd na istom nivou uvlačenja povezan sa ostalim kodom na istom nivou uvlačenja jedino ako se sav taj kod nalazi unutar iste svite. Inače, oni su u zasebnim svitama, pa nije važno to što su na istom nivou uvlačenja. Bitno je da se u Pythonu uvlačenje koristi da bi se razgraničile svite koda. 18 a j

39 osnove ta već znamo Pošto smo opisali poslednjih nekoliko redova koda, zastanimo malo da rekapituliramo šta nas je program odd.py naučio o Pythonu: Python se isporučuje sa ugrađenim ID okruženjem po imenu IDL, koje vam omogućava da pravite, menjate i iz v r šav ate s v oj P y th on kô d dov ol j n o je da upišete kôd, sačuvate ga i zatim p r itis n e te F 5. IDL komunicira sa Pythonovim interpreterom, koji vam automatizuje p r oc e s p r e v od-p ov e z iv an j e -iz v r šav an j e. To vam omogućava da se koncentrišete n a p is an j e koda. Interpreter izvršava vaš kôd (sačuvan u fajlu) od vrha ka dnu, red po red. U Pythonu ne postoji pojam funkcije metoda main(). Python se isporučuje sa moćnom s tan dar dn om b ib l iote kom, koj a obezbeđuje pristup mnogim modulima za višekratnu upotrebu (od kojih je datetime s am o j e dan p r im e r ). K ada p iše te P y th on p r og r am e im ate n a raspolaganju celu kolekciju standardnih struktura podataka. Lista je jedna od njih, a to je pojam veoma sličan nizu. T ip p r om e n l j iv e n e m or a da s e de kl ar iše. Kada u Pythonu promenljivoj dodelite vrednost, ona dinamički preuzima tip p odataka n a koj e s e odn os i. Odluke donosite pomoću naredbe if elif else. Ključne reči if, elif, i else p r e th ode b l okov im a koda, koj i s e u Pythonu zovu svite. Svite koda se lako uočavaju, pošto su uvek uvučene. Uvlačenje je jedini mehanizam za grupisanje koda u Pythonu. Pored uvlačenja, svitama koda takođe prethodi dvotačka (:). To je sintaksni z ah te v j e z ika To je du ačka lista a tako kratak pro ram! akle... kakav je plan a ostatak po lavlja? ajde da proširimo program da radi još više. Istina je da smo utrošili više redova da bismo opisali šta ovaj kratak program radi nego što je bilo potrebno da se napiše sam kôd. Ali to je jedna od velikih prednosti Pythona: mo ete mnogo da uradite sa svega nekoliko redova koda. Pregledajte još jednom gornju listu, a zatim okrenite stranicu, pa ćete videti šta će biti proširenja našeg programa. vi ste ovde 4 19

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. 1) Kod pravilnih glagola, prosto prošlo vreme se gradi tako

More information

Podešavanje za eduroam ios

Podešavanje za eduroam ios Copyright by AMRES Ovo uputstvo se odnosi na Apple mobilne uređaje: ipad, iphone, ipod Touch. Konfiguracija podrazumeva podešavanja koja se vrše na računaru i podešavanja na mobilnom uređaju. Podešavanja

More information

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI Za pomoć oko izdavanja sertifikata na Windows 10 operativnom sistemu možete se obratiti na e-mejl adresu esupport@eurobank.rs ili pozivom na telefonski broj

More information

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings Eduroam O Eduroam servisu Eduroam - educational roaming je besplatan servis za pristup Internetu. Svojim korisnicima omogućava bezbedan, brz i jednostavan pristup Internetu širom sveta, bez potrebe za

More information

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a NIS PETROL Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a Beograd, 2018. Copyright Belit Sadržaj Disable... 2 Komentar na PHP kod... 4 Prava pristupa... 6

More information

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije Biznis scenario: U školi postoje četiri sekcije sportska, dramska, likovna i novinarska. Svaka sekcija ima nekoliko aktuelnih projekata. Likovna ima četiri projekta. Za projekte Pikaso, Rubens i Rembrant

More information

Otpremanje video snimka na YouTube

Otpremanje video snimka na YouTube Otpremanje video snimka na YouTube Korak br. 1 priprema snimka za otpremanje Da biste mogli da otpremite video snimak na YouTube, potrebno je da imate kreiran nalog na gmailu i da video snimak bude u nekom

More information

Tutorijal za Štefice za upload slika na forum.

Tutorijal za Štefice za upload slika na forum. Tutorijal za Štefice za upload slika na forum. Postoje dvije jednostavne metode za upload slika na forum. Prva metoda: Otvoriti nova tema ili odgovori ili citiraj već prema želji. U donjem dijelu obrasca

More information

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri. Potprogrami su delovi programa. Često se delovi koda ponavljaju u okviru nekog programa. Logično je da se ta grupa komandi izdvoji u potprogram, i da se po želji poziva u okviru programa tamo gde je potrebno.

More information

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević GUI Layout Manager-i Bojan Tomić Branislav Vidojević Layout Manager-i ContentPane Centralni deo prozora Na njega se dodaju ostale komponente (dugmići, polja za unos...) To je objekat klase javax.swing.jpanel

More information

Uvod u relacione baze podataka

Uvod u relacione baze podataka Uvod u relacione baze podataka 25. novembar 2011. godine 7. čas SQL skalarne funkcije, operatori ANY (SOME) i ALL 1. Za svakog studenta izdvojiti ime i prezime i broj različitih ispita koje je pao (ako

More information

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS - Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS 1. Pokrenite Adobe Photoshop CS i otvorite novi dokument sa komandom File / New 2. Otvoriće se dijalog

More information

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik) JEDINSTVENI PORTAL POREZNE UPRAVE Priručnik za instalaciju Google Chrome dodatka (Opera preglednik) V1 OPERA PREGLEDNIK Opera preglednik s verzijom 32 na dalje ima tehnološke promjene zbog kojih nije moguće

More information

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB. 9.72 8.24 6.75 6.55 6.13 po 9.30 7.89 5.86 10.48 8.89 7.30 7.06 6.61 11.51 9.75 8.00 7.75 7.25 po 0.38 10.21 8.66 7.11 6.89 6.44 11.40 9.66 9.73 7.69 7.19 12.43 1 8.38 7.83 po 0.55 0.48 0.37 11.76 9.98

More information

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima 1. Uvod 2. Preuzimanje programa i stvaranje mapa 3. Instalacija Apachea 4. Konfiguracija Apachea 5. Instalacija PHP-a 6. Konfiguracija

More information

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd, AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje Marko Eremija Sastanak administratora, Beograd, 12.12.2013. Sadržaj eduroam - uvod AMRES eduroam statistika Novine u okviru eduroam

More information

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY Softverski sistem Survey za geodeziju, digitalnu topografiju i projektovanje u niskogradnji instalira se na sledeći način: 1. Instalirati grafičko okruženje pod

More information

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB UPUTSTVO za ruter TP-LINK TD-854W/ TD-W8951NB Uputstvo za ruter TP-Link TD-854W / TD-W8951NB 2 PRAVILNO POVEZIVANJE ADSL RUTERA...4 PODEŠAVANJE KONEKCIJE PREKO MREŽNE KARTE ETHERNET-a...5 PODEŠAVANJE INTERNET

More information

Windows Easy Transfer

Windows Easy Transfer čet, 2014-04-17 12:21 - Goran Šljivić U članku o skorom isteku Windows XP podrške [1] koja prestaje 8. travnja 2014. spomenuli smo PCmover Express i PCmover Professional kao rješenja za preseljenje korisničkih

More information

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA KOŽA I TEKSTIL ALU FELGE CJENIK APLIKACIJE CERAMIC PRO PROIZVODA Radovi prije aplikacije: Prije nanošenja Ceramic Pro premaza površina vozila na koju se nanosi mora bi dovedena u korektno stanje. Proces

More information

SAS On Demand. Video: Upute za registraciju:

SAS On Demand. Video:  Upute za registraciju: SAS On Demand Video: http://www.sas.com/apps/webnet/video-sharing.html?bcid=3794695462001 Upute za registraciju: 1. Registracija na stranici: https://odamid.oda.sas.com/sasodaregistration/index.html U

More information

Babylon - instalacija,aktivacija i rad sa njim

Babylon - instalacija,aktivacija i rad sa njim Babylon - instalacija,aktivacija i rad sa njim Babilon je vodeći svetski prevodilac brzog online i offline rečnika sa prevođenjem u preko 75 jezika jednim jednostavnim klikom misa i koriste ga miloni privatnih

More information

Pravljenje Screenshota. 1. Korak

Pravljenje Screenshota. 1. Korak Prvo i osnovno, da biste uspesno odradili ovaj tutorijal, morate imati instaliran GOM Player. Instalacija je vrlo jednostavna, i ovaj player u sebi sadrzi sve neophodne kodeke za pustanje video zapisa,

More information

za STB GO4TV in alliance with GSS media

za STB GO4TV in alliance with GSS media za STB Dugme za uključivanje i isključivanje STB uređaja Browser Glavni meni Osnovni meni Vrsta liste kanala / omiljeni kanali / kraći meni / organizacija kanala / ponovno pokretanje uređaja / ponovno

More information

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU KONFIGURACIJA MODEMA ZyXEL Prestige 660RU Sadržaj Funkcionalnost lampica... 3 Priključci na stražnjoj strani modema... 4 Proces konfiguracije... 5 Vraćanje modema na tvorničke postavke... 5 Konfiguracija

More information

1. Instalacija programske podrške

1. Instalacija programske podrške U ovom dokumentu opisana je instalacija PBZ USB PKI uređaja na računala korisnika PBZCOM@NET internetskog bankarstva. Uputa je podijeljena na sljedeće cjeline: 1. Instalacija programske podrške 2. Promjena

More information

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE CJENOVNIK KABLOVSKA TV Za zasnivanje pretplatničkog odnosa za korištenje usluga kablovske televizije potrebno je da je tehnički izvodljivo (mogude) priključenje na mrežu Kablovskih televizija HS i HKBnet

More information

Bušilice nove generacije. ImpactDrill

Bušilice nove generacije. ImpactDrill NOVITET Bušilice nove generacije ImpactDrill Nove udarne bušilice od Bosch-a EasyImpact 550 EasyImpact 570 UniversalImpact 700 UniversalImpact 800 AdvancedImpact 900 Dostupna od 01.05.2017 2 Logika iza

More information

Primer izrade dinamičkog sajta

Primer izrade dinamičkog sajta Primer izrade dinamičkog sajta U ovom odeljku opisademo postupak izrade jednostavnog dinamičkog sajta elektronske prodavnice. Struktura sajta Sajt se sastoji iz četiri celine. Prvi deo, početna strana,

More information

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6.

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6. KOREKTAN PREVOD? - Reupotrebljiv softver? ( ne postoji prefiks RE u srpskom jeziku ) - Ponovo upotrebljiv softver? ( totalno bezveze ) - Upotrebljiv više puta? - Itd. PLAN RADA 1. Počnimo sa primerom!

More information

Port Community System

Port Community System Port Community System Konferencija o jedinstvenom pomorskom sučelju i digitalizaciji u pomorskom prometu 17. Siječanj 2018. godine, Zagreb Darko Plećaš Voditelj Odsjeka IS-a 1 Sadržaj Razvoj lokalnog PCS

More information

3D GRAFIKA I ANIMACIJA

3D GRAFIKA I ANIMACIJA 1 3D GRAFIKA I ANIMACIJA Uvod u Flash CS3 Šta će se raditi? 2 Upoznavanje interfejsa Osnovne osobine Definisanje osnovnih entiteta Rad sa bojama Rad sa linijama Definisanje i podešavanje ispuna Pregled

More information

Nejednakosti s faktorijelima

Nejednakosti s faktorijelima Osječki matematički list 7007, 8 87 8 Nejedakosti s faktorijelima Ilija Ilišević Sažetak Opisae su tehike kako se mogu dokazati ejedakosti koje sadrže faktorijele Spomeute tehike su ilustrirae a izu zaimljivih

More information

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Struktura indeksa: B-stablo.   ls/swd/btree/btree.html Struktura indeksa: B-stablo http://cis.stvincent.edu/html/tutoria ls/swd/btree/btree.html Uvod ISAM (Index-Sequential Access Method, IBM sredina 60-tih godina 20. veka) Nedostaci: sekvencijalno pretraživanje

More information

Poglavlje 1 POČETAK RADA SA MICROSOFT OFFICE-OM 2016

Poglavlje 1 POČETAK RADA SA MICROSOFT OFFICE-OM 2016 Poglavlje 1 POČETAK RADA SA MICROSOFT OFFICE-OM 2016 Premda je Microsoft Office 2016 jednostavan i lak za upotrebu, vredi uložiti nekoliko minuta na istraživanje njegovog interfejsa i njegovih alata za

More information

Klasterizacija. NIKOLA MILIKIĆ URL:

Klasterizacija. NIKOLA MILIKIĆ   URL: Klasterizacija NIKOLA MILIKIĆ EMAIL: nikola.milikic@fon.bg.ac.rs URL: http://nikola.milikic.info Klasterizacija Klasterizacija (eng. Clustering) spada u grupu tehnika nenadgledanog učenja i omogućava grupisanje

More information

Direktan link ka kursu:

Direktan link ka kursu: Alat Alice može da se preuzme sa sledeće adrese: www.alice.org Kratka video uputstva posvećena alatu Alice: https://youtu.be/eq120m-_4ua https://youtu.be/tkbucu71lfk Kurs (engleski) posvećen uvodu u Java

More information

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ DIZAJN TRENINGA Model trening procesa FAZA DIZAJNA CILJEVI TRENINGA Vrste ciljeva treninga 1. Ciljevi učesnika u treningu 2. Ciljevi učenja Opisuju željene

More information

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Uvod u GIT Šta je git? Sistem za verzionisanje softvera kao i CVS, SVN, Perforce ili ClearCase Orginalno

More information

Uputstvo za upotrebu kvalifikovanog elektronskog sertifikata (KES)

Uputstvo za upotrebu kvalifikovanog elektronskog sertifikata (KES) Uputstvo za upotrebu kvalifikovanog elektronskog sertifikata (KES) Sadržaj Stavljanje pametne kartice u USB ključ... 1 Uputstvo za instalaciju drajvera za USB ključ... 3 Preuzimanje programa Nexus Personal...

More information

Office 365, upute za korištenje elektroničke pošte

Office 365, upute za korištenje elektroničke pošte Office 365, upute za korištenje elektroničke pošte Naša ustanova koristi uslugu elektroničke pošte u oblaku, u sklopu usluge Office 365. To znači da elektronička pošta više nije pohranjena na našem serveru

More information

Asinhronizam: pojmovi sada i kasnije

Asinhronizam: pojmovi sada i kasnije POGLAVLJE 20 Asinhronizam: pojmovi sada i kasnije Jedan od najvažnijih, ali uprkos tome često slabo shvaćenih delova programskog jezika kao što je JavaScript jeste kako izraziti ponašanje programa koje

More information

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Upute za korištenje makronaredbi gml2dwg i gml2dgn SVEUČILIŠTE U ZAGREBU - GEODETSKI FAKULTET UNIVERSITY OF ZAGREB - FACULTY OF GEODESY Zavod za primijenjenu geodeziju; Katedra za upravljanje prostornim informacijama Institute of Applied Geodesy; Chair

More information

Uputstva za upotrebu štampača CITIZEN S310II

Uputstva za upotrebu štampača CITIZEN S310II Upravljanje sistemom COBISS Uputstva za upotrebu štampača CITIZEN S310II V1.0 VIF-NA-27-XX IZUM, 2015. COBISS, COMARC, COBIB, COLIB, IZUM su zaštićeni znaci u posedu javnog zavoda IZUM. SADRŽAJ 1 Uvod...

More information

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o.

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o. UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o. Šta je potrebno za ispravan rad programa? Da bi program FINBOLT 2007 ispravno i kvalitetno izvršavao zadaću koja je postavljena pred njega

More information

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE) Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE) SISTEMI ZA PODRŠKU ODLUČIVANJU dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za računarstvo i informatiku 2013/2014 Tema 2: Uvod u sisteme

More information

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

OBJEKTNO ORIJENTISANO PROGRAMIRANJE OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 3 DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode - Parametri - Povratne vrednosti - Dodela

More information

Priprema podataka. NIKOLA MILIKIĆ URL:

Priprema podataka. NIKOLA MILIKIĆ   URL: Priprema podataka NIKOLA MILIKIĆ EMAIL: nikola.milikic@fon.bg.ac.rs URL: http://nikola.milikic.info Normalizacija Normalizacija je svođenje vrednosti na neki opseg (obično 0-1) FishersIrisDataset.arff

More information

Deo II. Priprema datoteke s podacima

Deo II. Priprema datoteke s podacima Deo II Priprema datoteke s podacima Priprema datoteke s podacima za analizu obuhvata više koraka. Prvo se napravi prazna datoteka i u nju unesu podaci dobijeni u istraživanju, u obliku definisanom u šifarniku

More information

Struktura i organizacija baza podataka

Struktura i organizacija baza podataka Fakultet tehničkih nauka, DRA, Novi Sad Predmet: Struktura i organizacija baza podataka Dr Slavica Aleksić, Milanka Bjelica, Nikola Obrenović Primer radnik({mbr, Ime, Prz, Sef, Plt, God, Pre}, {Mbr}),

More information

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

STABLA ODLUČIVANJA. Jelena Jovanovic.   Web: STABLA ODLUČIVANJA Jelena Jovanovic Email: jeljov@gmail.com Web: http://jelenajovanovic.net 2 Zahvalnica: Ovi slajdovi su bazirani na materijalima pripremljenim za kurs Applied Modern Statistical Learning

More information

BENCHMARKING HOSTELA

BENCHMARKING HOSTELA BENCHMARKING HOSTELA IZVJEŠTAJ ZA SVIBANJ. BENCHMARKING HOSTELA 1. DEFINIRANJE UZORKA Tablica 1. Struktura uzorka 1 BROJ HOSTELA BROJ KREVETA Ukupno 1016 643 1971 Regije Istra 2 227 Kvarner 4 5 245 991

More information

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. Idejno rješenje: Dubrovnik 2020. Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. vizualni identitet kandidature dubrovnika za europsku prijestolnicu kulture 2020. visual

More information

AD Table 1.--Goodrich Evacuation Systems Installed on Certain Boeing Model Airplanes. Having any serial number (S/N) -

AD Table 1.--Goodrich Evacuation Systems Installed on Certain Boeing Model Airplanes. Having any serial number (S/N) - Table 1.--Goodrich Evacuation Systems Installed on Certain Boeing Model Airplanes (i) 101623-303 (ii) 101630-305 (iii) 101630-306 (iv) 101655-305 (v) 101655-306 (vi) 101656-305 (vii) 101656-306 (viii)

More information

SKINUTO SA SAJTA Besplatan download radova

SKINUTO SA SAJTA  Besplatan download radova SKINUTO SA SAJTA www.maturskiradovi.net Besplatan download radova Prirucnik za gramatiku engleskog jezika Uvod Sama suština i jedna od najbitnijih stavki u engleskoj gramatici su pomoćni glagoli! Bez njih

More information

Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll)

Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll) Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll) pomodu razvojnog okruženja Microsoft Visual Studio 2010 Autor: dipl.ing. Nemanja Kojić, asistent Decembar 2013. Korak 1

More information

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Marijana Glavica Dobrica Pavlinušić http://bit.ly/ffzg-eprints Definicija

More information

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine UNIVERZITETUBEOGRADU RUDARSKOGEOLOŠKIFAKULTET DEPARTMANZAHIDROGEOLOGIJU ZBORNIKRADOVA ZLATIBOR 1720.maj2012.godine XIVSRPSKISIMPOZIJUMOHIDROGEOLOGIJI ZBORNIKRADOVA IZDAVA: ZAIZDAVAA: TEHNIKIUREDNICI: TIRAŽ:

More information

11 Analiza i dizajn informacionih sistema

11 Analiza i dizajn informacionih sistema 11 Analiza i dizajn informacionih sistema Informatika V.Prof.dr Kemal Hajdarević dipl.ing.el 25.4.2014 11:58:28 1 1. Kompjuter, Internet, i mrežne osnove 2. Kompjuterska industrija Informatika u stomatologiji

More information

SEZONA 2017/18 SUPERLIGA I 1. LIGA SENIORI SUPERLIGA I 1. LIGA SENIORKE OSTALA DOMAĆA NATJECANJA EUROPSKA KUP NATJECANJA REPREZENTACIJA HRVATSKE

SEZONA 2017/18 SUPERLIGA I 1. LIGA SENIORI SUPERLIGA I 1. LIGA SENIORKE OSTALA DOMAĆA NATJECANJA EUROPSKA KUP NATJECANJA REPREZENTACIJA HRVATSKE R U J A N 2 0 1 7 2017 European Championship Women I. KOLO MEVZA - MUŠKI L I S T O P A D 2 0 1 7 I. kolo 31. U - 17 - I KOLO I. KOLO MEVZA - ŽENE II. KOLO MEVZA - ŽENE I MUŠKI S U P E R I - KOLO II - KOLO

More information

Zvanični priručnik za korisnike

Zvanični priručnik za korisnike Zvanični priručnik za korisnike Linux Mint Cinnamon Edicija Strana 1 of 48 Table of Contents UVOD U LINUX MINT... 4 ISTORIJA...4 NAMENA...4 BROJEVI VERZIJA I KODIRANA IMENA IZDANJA...5 EDICIJE...6 GDE

More information

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET!

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET! WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET! WELLNESS & SPA DNEVNA KARTA DAILY TICKET 35 BAM / 3h / person RADNO VRIJEME OPENING HOURS 08:00-21:00 Besplatno za djecu do 6 godina

More information

PROJEKTNI PRORAČUN 1

PROJEKTNI PRORAČUN 1 PROJEKTNI PRORAČUN 1 Programski period 2014. 2020. Kategorije troškova Pojednostavlj ene opcije troškova (flat rate, lump sum) Radni paketi Pripremni troškovi, troškovi zatvaranja projekta Stope financiranja

More information

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija EVALUACIJA UPOTREBLJIVOSTI KORISNIČKOG INTERFEJSA VEB APLIKACIJA UZ POMOĆ METODA ZA AUTOMATSKO PRIKUPLJANJE PODATAKA O KORIŠĆENJU EVALUATION USABILITY OF USER INTERFACE WEB APPLICATIONS BY METHODS FOR

More information

VBA moduli. mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice

VBA moduli. mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice VBA moduli mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice Moduli (modules) ponašanje modula Ponašanje modula može se prilagoditi na 4 načina: Option Explicit Option Private Module

More information

Testiranje koda - JUnit. Bojan Tomić

Testiranje koda - JUnit. Bojan Tomić Testiranje koda - JUnit Bojan Tomić Testiranje programa Dinamička provera ponašanja programa izvođenjem konačnog broja testova i upoređivanjem sa očekivanim ponašanjem programa Programska mana ( software

More information

EUnet dial-up konfigurator

EUnet dial-up konfigurator Dubrovačka 35/III 11000 Beograd tel/fax: (011) 3305-678 office@eunet.yu Tehnička podrška: tel: (011) 3305-633 support@eunet.yu EUnet dial-up konfigurator - korisničko uputstvo - Ovaj program namenjen je

More information

JavaScript podrska u radu sa greskama

JavaScript podrska u radu sa greskama JavaScript podrska u radu sa greskama Svaki od pregledaca ima svoj podrazumevani naci reagovanja na greske, Firefox i Chrome upisuju greske u log datoteku, dok recimo Internet Explorer i Opera generisu

More information

- PRIRUČNIK ZA STUDENTE -

- PRIRUČNIK ZA STUDENTE - - PRIRUČNIK ZA STUDENTE - Kako pristupiti web-sajtu Učenja na daljinu Pristupite web-stranici kursa: moodle.famns.edu.rs, upotreba web-brauzera spada u osnove korišćenja računara, dakle ovaj korak ne predstavlja

More information

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći:

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći: Pogledi Ciljevi Poslije kompletiranja ove lekcije trebalo bi se moći: Opisati pogled Formirati novi pogled Vratiti podatke putem pogleda Izmijeniti postojeći pogled Insertovani, ažurirati i brisati podatke

More information

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU (Usaglašeno sa procedurom S.3.04 sistema kvaliteta Megatrend univerziteta u Beogradu) Uvodne napomene

More information

Upotreba selektora. June 04

Upotreba selektora. June 04 Upotreba selektora programa KRONOS 1 Kronos sistem - razina 1 Podešavanje vremena LAMPEGGIANTI 1. Kada je pećnica uključena prvi put, ili u slučaju kvara ili prekida u napajanju, simbol SATA i odgovarajuća

More information

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT TRAJANJE AKCIJE 16.01.2019-28.02.2019 ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT Akcija sa poklonima Digitally signed by pki, pki, BOSCH, EMEA, BOSCH, EMEA, R, A, radivoje.stevanovic R, A, 2019.01.15 11:41:02

More information

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA:

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA: Past simple uporabljamo, ko želimo opisati dogodke, ki so se zgodili v preteklosti. Dogodki so se zaključili v preteklosti in nič več ne trajajo. Dogodki so se zgodili enkrat in se ne ponavljajo, čas dogodkov

More information

SADRŽAJ. Besplatna registracija. Odabir platforme za trgovanje. Čime želimo trgovati? Trgovanje

SADRŽAJ. Besplatna registracija. Odabir platforme za trgovanje. Čime želimo trgovati? Trgovanje SADRŽAJ 1 Besplatna registracija 2 Odabir platforme za trgovanje 3 Čime želimo trgovati? 4 Trgovanje 5 Određivanje potencijalne zarade i sprječavanje gubitaka BESPLATNA REGISTRACIJA Možete registrirati

More information

Tarek Ziadé. Python. Razvoj mikroservisa. Izgradnja, testiranje, raspoređivanje i skaliranje mikroservisa u Pythonu

Tarek Ziadé. Python. Razvoj mikroservisa. Izgradnja, testiranje, raspoređivanje i skaliranje mikroservisa u Pythonu Tarek Ziadé Python Razvoj mikroservisa Izgradnja, testiranje, raspoređivanje i skaliranje mikroservisa u Pythonu tarek ziadé Python Razvoj mikroservisa Izdavač: Obalskih radnika 15, Beograd Tel: 011/2520272

More information

SHARK ROUTE Learning about sharks and ours oceans

SHARK ROUTE Learning about sharks and ours oceans SHARK ROUTE Learning about sharks and ours oceans By Ilena Zanella and Andrés López September, 2010 SHARK ROUTE Learning about sharks and ours oceans The Shark Route is Misión Tiburón`s first project and

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Istorijat programskih jezika Programski jezici Programski jezici su veštački jezici koji se mogu koristiti za kontrolu ponašanja mašine, naročito

More information

P R O J E K T N I R A D

P R O J E K T N I R A D Elektrotehnički fakultet Banja Luka P R O J E K T N I R A D iz predmeta: M U L T I M E D I J A L N I S I S T E M I zadatak: Virtuelna multimedijalna biblioteka Studenti: Vladimir Javorina, 80/02 Milan

More information

Aplikacija za podršku transferu tehnologija

Aplikacija za podršku transferu tehnologija Aplikacija za podršku transferu tehnologija uputstvo za instalaciju i administraciju sistema Doc. dr Vladimir Ćirić dipl. inž. Darko Tasić septembar 2012. 2 Sadržaj Uputstvo za instalaciju i administraciju

More information

STRUČNA PRAKSA B-PRO TEMA 13

STRUČNA PRAKSA B-PRO TEMA 13 MAŠINSKI FAKULTET U BEOGRADU Katedra za proizvodno mašinstvo STRUČNA PRAKSA B-PRO TEMA 13 MONTAŽA I SISTEM KVALITETA MONTAŽA Kratak opis montže i ispitivanja gotovog proizvoda. Dati izgled i sadržaj tehnološkog

More information

Mindomo online aplikacija za izradu umnih mapa

Mindomo online aplikacija za izradu umnih mapa Mindomo online aplikacija za izradu umnih mapa Mindomo je online aplikacija za izradu umnih mapa (vrsta dijagrama specifične forme koji prikazuje ideje ili razmišljanja na svojevrstan način) koja omogućuje

More information

RANI BOOKING TURSKA LJETO 2017

RANI BOOKING TURSKA LJETO 2017 PUTNIČKA AGENCIJA FIBULA AIR TRAVEL AGENCY D.O.O. UL. FERHADIJA 24; 71000 SARAJEVO; BIH TEL:033/232523; 033/570700; E-MAIL: INFO@FIBULA.BA; FIBULA@BIH.NET.BA; WEB: WWW.FIBULA.BA SUDSKI REGISTAR: UF/I-1769/02,

More information

WEBE-Bankzapravnalica Uputstvo za upotrebu

WEBE-Bankzapravnalica Uputstvo za upotrebu WEBE-Bankzapravnalica Uputstvo za upotrebu WEB E-Bank za pravna lica Uputstvo za upotrebu Autor: Komercijalna banka a.d. Beograd Sektor platnog prometa Odeljenje E-Bank Datum: 27.02.2009 Sadržaj O priručniku

More information

- Vežba 2 - OPTIMIZACIJA GRAFIKE ZA WEB UPOTREBA ALATKE SLICE TOOL IZRADA WEB GALERIJE

- Vežba 2 - OPTIMIZACIJA GRAFIKE ZA WEB UPOTREBA ALATKE SLICE TOOL IZRADA WEB GALERIJE - Vežba 2 - OPTIMIZACIJA GRAFIKE ZA WEB UPOTREBA ALATKE SLICE TOOL IZRADA WEB GALERIJE OPTIMIZACIJA GRAFIKE ZA WEB Upotreba slika za dizajn web sajta je uobičajena praksa. Pomoću slika definišemo izgled

More information

Microsoft Office PowerPoint 2007 korak po korak

Microsoft Office PowerPoint 2007 korak po korak M Microsoft Office PowerPoint 2007 korak po korak Joyce Cox i Joan Preppernau CET Computer Equipment and Trade Microsoft Office PowerPoint 2007 korak po korak ISBN 978-86-7991-310-4 Autorizovan prevod

More information

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011.

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011. TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011. TECHNOLOGY, INFORMATICS AND EDUCATION FOR LEARNING AND KNOWLEDGE SOCIETY

More information

AUDIO-VIZUELNA SREDSTVA

AUDIO-VIZUELNA SREDSTVA AUDIO-VIZUELNA SREDSTVA UPUTSTVO ZA PRIPREMU PREDISPITNE OBAVEZE Sremska Mitrovica, 2017. SADRŽAJ 1. Predispitna obaveza... 3 2. Tema predispitne obaveze... 3 3. Parametri video snimka... 4 4. Struktura

More information

NEALE DONALD WALSCH. CONVERSATIONS WITH GOD - an uncommon dialogue - book 1. RAZGOVORI SA BOGOM - jedan neuobičajen dijalog - knjiga 1

NEALE DONALD WALSCH. CONVERSATIONS WITH GOD - an uncommon dialogue - book 1. RAZGOVORI SA BOGOM - jedan neuobičajen dijalog - knjiga 1 NEALE DONALD WALSCH CONVERSATIONS WITH GOD - an uncommon dialogue - book 1 RAZGOVORI SA BOGOM - jedan neuobičajen dijalog - knjiga 1 1 Priznanja Na početku, na kraju i uvek, želim odati priznanje Izvoru

More information

msc Velimir Milanovic Unošenje prvih zapisa Kreiranje elektronskih obrazaca - formi Prva forma - Čitaoci U P I T I

msc Velimir Milanovic Unošenje prvih zapisa Kreiranje elektronskih obrazaca - formi Prva forma - Čitaoci U P I T I msc Velimir Milanovic SADRŽAJ: 1. Pojam informacionih sistema... 4 1. 1. Vrste informacionih sistema... 5 1.1.1. Informacioni sistemi za obradu podataka (dp data processing)... 5 1. 1. 2. Upravljački informacioni

More information

Dežurni nastavnik: Ispit traje 3 sata, prvih sat vremena nije dozvoljeno napuštanje ispita. Upotreba literature nije dozvoljena.

Dežurni nastavnik: Ispit traje 3 sata, prvih sat vremena nije dozvoljeno napuštanje ispita. Upotreba literature nije dozvoljena. Dežurni nastavnik: Elektrotehnički fakultet u Beogradu Katedra za računarsku tehniku i informatiku Predmet: Testiranje softvera (SI3TS) Nastavnik: doc. dr Dragan Bojić Asistent: dipl. ing. Dražen Drašković

More information

mdita Editor - Korisničko uputstvo -

mdita Editor - Korisničko uputstvo - mdita Editor - Korisničko uputstvo - Sadržaj 1. Minimalna specifikacija računara... 3 2. Uputstvo za instalaciju aplikacije... 3 3. Korisničko uputstvo... 11 3.1 Odabir File opcije iz menija... 11 3.2

More information

Raft Island Gig Harbor, Washington

Raft Island Gig Harbor, Washington RIIA Special Committee for the placement of Speed Controls Raft Island Gig Harbor, Washington Speed Control Placement and Road Safety Recommendations Date: September 14, 2017 Prepared for: RIIA Board Members

More information

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

1.7 Predstavljanje negativnih brojeva u binarnom sistemu .7 Predstavljanje negativnih brojeva u binarnom sistemu U decimalnom brojnom sistemu pozitivni brojevi se predstavljaju znakom + napisanim ispred cifara koje definišu apsolutnu vrednost broja, odnosno

More information

Vodič za učenje. Kako da sa manje truda i vremena postižete odlične rezultate - DRUGO IZDANJE -

Vodič za učenje. Kako da sa manje truda i vremena postižete odlične rezultate - DRUGO IZDANJE - Vodič za učenje Kako da sa manje truda i vremena postižete odlične rezultate - DRUGO IZDANJE - IMPRESSUM VODIČ ZA UČENJE LINKgroup Drugo izdanje IZDAVAČ Link group DOO, Cara Dušana 34, Zemun, marketing@link.co.rs

More information

Kapitalizam i otpor u 21. veku

Kapitalizam i otpor u 21. veku Anarhistička biblioteka Anti-Copyright 18. 10. 2012. CrimethInc. Ex-Workers Collective Kapitalizam i otpor u 21. veku Uživo u Zrenjaninu CrimethInc. Ex-Workers Collective Kapitalizam i otpor u 21. veku

More information

Sadržaj. WORDPRESS OSNOVE e-book v 1.2

Sadržaj. WORDPRESS OSNOVE e-book v 1.2 Sadržaj Uvodna reč... 3 Instalacija WordPress-a na online server... 3 Pristup admin panelu sajta... 5 Unos članaka... 8 Unos fotografija i multimedije... 10 Ažuriranje stranica... 11 Komentari... 12 Instalacija

More information

VAŠI GOSTI ĆE PRIMETITI RAZLIKU. EXPERTS IN HOSPITALITY

VAŠI GOSTI ĆE PRIMETITI RAZLIKU. EXPERTS IN HOSPITALITY VAŠI GOSTI ĆE PRIMETITI RAZLIKU. EXPERTS IN HOSPITALITY NIKADA NISMO ZADOVOLJNI SA ZADOVOLJAVAJUĆIM REZULTATIMA. Gosti odsedaju u kvalitetnim hotelima i rezortima poput Vašeg sa razlogom: vrhunski komfor

More information

STINGRAY MUSIC - MOBILNA APLIKACIJA

STINGRAY MUSIC - MOBILNA APLIKACIJA STINGRAY MUSIC - MOBILNA APLIKACIJA Uputstvo za korisnike Januar 2016 UPUTSTVO ZA BRZO STARTOVANJE 1 Preuzmite sa App Store-a ili Google Play-a mobilnu aplikaciju Stingray Music, a zatim je pokrenite.

More information

Mogudnosti za prilagođavanje

Mogudnosti za prilagođavanje Mogudnosti za prilagođavanje Shaun Martin World Wildlife Fund, Inc. 2012 All rights reserved. Mogudnosti za prilagođavanje Za koje ste primere aktivnosti prilagođavanja čuli, pročitali, ili iskusili? Mogudnosti

More information