|
![]() |
#32 |
Premium
Datum registracije: Oct 2006
Lokacija: Dubrovnik
Postovi: 2,573
|
Simple: computepay je funkcija koja prima dva argumenta (h i r) odnosno ante i mate ili kako god hoćeš ih možeš nazvati. Kada se program izvršava, najprije se izvršava try pa se zatim poziva computepay funkcija čiji se rezultat sprema u varijablu pay te sa print pay ispisiva taj rezultat. Ukratko, kada poziva funkciju predaje argumente hours i rate koji su neka realna brojčana vrijednost. Ti argumenti se pri pozivu funkcije kopiraju u varijable h i r (moglo ih se isto nazvati hours i rate ali vjerojatno namjerno nije kako ne bi mislio da radiš direktno sa donjim varijablama već njihovim kopijama). Ovisno o tome je li h <= 40 rade se zadane operacije a rezultat se sprema u varijablu p. Tu varijablu, odnosno njenu vrijednost moramo zapamtiti prilikom izvršenja funkcije. Za taj dio je zaslužan return p koji kod poziva pay = computepay(hours, rate) ima ulogu da u varijablu pay spremi vrijednost varijable p iz funkcije. Nadam se da nisam zakompliciro s odgovorom ![]() to bi izgledalo ovako na primjeru: ukoliko za Enter hours unesemo 5.5 a za Enter rate unesemo 3.5 onda pozivamo funkciju computepay koja bi izgledala computepay(5.5, 3.5). Ulaskom u funkciju varijabla h iznosi 5.5 a varijabla r 3.5. Iizvršava se if uvjet jer h nije veći od 40 pa je rezultat 19.25 i taj rezultat se sprema u varijablu p. Else dio se preskače i funkcija vraća vrijednost 19.25 te se ta vrijednost sprema u varijablu pay jer smo tako rekli pri pozivu funkcije (pay = computepay(...)). Kada isprintamo varijablu p (print p) vidit ćemo da je rezultat 19.25. Zadnje izmijenjeno od: Bullet1. 27.02.2015. u 00:34. |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#33 | |
Buying Bitcoin
Datum registracije: Feb 2007
Lokacija: Croatia
Postovi: 7,852
|
Citiraj:
|
|
![]() |
![]() |
![]() |
#34 |
Premium
Datum registracije: May 2012
Lokacija: Zagreb
Postovi: 848
|
Predzadnji red, kad poziva funkciju compute, prenosi parametre hours i rate a u prvom redu ih ta funkcija kopira u h i r. U predzadnjem redu ti ito tako pise pay=... A vracas p, ona vrijedbost koju vracas ce se spremiti u pay. |
![]() |
![]() |
![]() |
#35 |
Premium
Datum registracije: Oct 2006
Lokacija: Dubrovnik
Postovi: 2,573
|
Samo treba shvatiti da h i hours nisu iste varijable već je h kopija od hours. Dakle ako ti imaš varijablu imena Neo-ST koju šalješ funkciji, nije uopće bitno kako će se ona u funkciji zvati. Može se zvati isto Neo-ST a može Bullet, Pero a, z, žnj itd. funkcija ima oblik: funkcija (a, b) { ...tijelo funkcije... } a u main programu ti tu funkciju pozivaš funkcija(Neo-ST, Bullet) gdje argumenti koje predaješ odgovaraju tipu varijable koja funkcija prima. Neznam kako bi ti pobliže objasnio od ovako: Dakle, computepay gledaj kao funkciju i nema apsolutno nikakve veze što je ona napisana prije try. Try se nalazi u main dijelu programa i služi kako bi ti dao vrijednost nekoj varijabli. Imaš jabuku i trebaš joj dati vrijednost da znaš koliko ona košta. Ako si definirao da jabuka košta 2kn možeš ju zapisati kao jabuka = 2. S druge strane imaš krušku koja košta 3kn i definiraš varijablu kruška = 3. Sada imaš dvije opcije za izračun koliko jedna jabuka i jedna kruška skupa koštaju. Prva opcija je da u main programu samo nastaviš pisati nešto poput: suma = jabuka + kruška ; što znači da je suma = 2 + 3 odnosno suma = 5; ili napraviš funkciju koja se zove suma te prima parametre artikl1 i artikl2. Takav zapis funkcije izgleda suma(artikl1, artikl2). Ti od te funkcije tražiš da ti napravi sumu dvaju artikala i da ti vrati rezultat. Nebitno je jesu li u pitanju kruške i jabuke ili šljive i smokve, ista je matematika. Dakle, definirao si u glavnom programu da je: jabuka = 2; kruška = 3; i sada želiš primjeniti funkciju koja će zbrojiti vrijednosti krušaka i jabuka. To ćeš napraviti jednostavnim pozivom funkcije suma(jabuka, kruška) i spremit ćeš povratnu vrijednost u neku varijablu kako bi tu sumu mogao koristiti dalje u programu ili ju samo ispisati. Da ne filozofiram dalje, napisat ću ti jednostavniji primjer od toga što imaš zadano pa možda shvatiš. Code:
//ovo je funkcija koju pozivaš iz main programa def suma(artikl1, artikl2): rezultat = artikl1 + artikl2; return rezultat; //ovo je main program jabuka = 2; kruška = 3; šljiva = 5; smokva = 1; //funkcija sprema rezultat (5) u varijablu trošak1 trošak1 = suma(jabuka, kruška); //ispisivamo vrijednost varijable trošak1 odnosno broj 5 print trošak1; //funkcija sprema rezultat (6) u varijablu trošak2 trošak2 = suma(šljiva, smokva); //ispisivamo vrijednost varijable trošak2 odnosno broj 6 print trošak2; //funkcija sprema rezultat (11) u varijablu ukupan_trošak ukupan_trošak = suma(trošak1, trošak2); //ispisivamo vrijednost varijable ukupan_trošak odnosno broj 11 print ukupan_trošak; Jabuka se preslikala u artikl1 Kruška se preslikala u artikl2 Šljiva se preslikala u artikl1 Smokva se preslikala u artikl2 Trošak1 se preslikao u artikl1 Trošak2 se preslikao u artikl2 Već su neke ure i neznam kako da ti bolje objasnim, sorry... |
![]() |
![]() |
![]() |
#36 |
Premium
Datum registracije: Jan 2013
Lokacija: Zagreb
Postovi: 863
|
Ako sam dobro shvatio, funkcija je zadana sa svojim varijablama. Kad definiramo sumu, unutar sume su elementi funkcije i nije bitno sto napisemo jer kad napisemo tu funkciju program zna o kojoj je funkciji rijec i automatski za artikl1 stavlja jabuku, za artikl2 stavlja krusku...odnosno u primjeru sa slike za hours stavlja h a za rate r Jesam dobro shvatio? |
![]() |
![]() |
![]() |
#37 |
Registered User
Datum registracije: Jan 2015
Lokacija: Zagreb
Postovi: 695
|
Tako je. Ono što funkcija radi je definirano u tijelu funkcije, a s kojim vrijednostima će to nešto raditi zadaje se pomoću argumenata. Tijelo funkcije je sve ono što ide ispod def ime_funkcije(arg1, arg2, arg3), pri čemu su arg1, arg2 i arg3 argumenti. Osim toga što se "razbijanjem" koda na funkcije dobiva na čitljivosti te lakšem pronalaženju i popravljanju grešaka, jedna od glavnih svrha njihovog korištenja je tzv. reusability, tj. ista funkcija može se koristiti u različitim programima i za potpuno različite stvari. Bullet1 je naveo kao primjer funkciju suma i s njom je zbrajao cijene voća. Ista ta funkcija može se kasnije u nekom drugom programu koristiti npr. za zbrajanje kilometara od Zagreba do Rijeke i od Rijeke do Splita. Naravno, ako će je se koristiti za zbrajanje kilometara, bilo bi primjerenije da se artikl1 i artikl2 preimenuju u nešto poput kilometri1 i kilometri2 jer bi bilo lakše za razumijeti u okviru tog programa, pa bi to izgledalo ovako: Code:
def suma(kilometri1, kilometri2): rezultat = kilometri1 + kilometri2 return rezultat # Cestovne udaljenosti izmedu gradova su sljedece: zagreb_rijeka = 170 rijeka_split = 360 ''' Koliko cu kilometara prijeci ako krenem iz Zagreba, prespavam u Rijeci i nastavim dalje prema Splitu? ''' udaljenost = suma(zagreb_rijeka, rijeka_split) print udaljenost Code:
def suma(artikl1, artikl2): rezultat = artikl1 + artikl2 return rezultat # Cestovne udaljenosti izmedu gradova su sljedece: jabuka = 170 kruska = 360 ''' Koliko cu kilometara prijeci ako krenem iz Zagreba, prespavam u Rijeci i nastavim dalje prema Splitu? ''' trosak = suma(jabuka, kruska) print trosak Zadnje izmijenjeno od: KhongLo. 27.02.2015. u 12:34. |
![]() |
![]() |
![]() |
#39 |
Registered User
Datum registracije: Jan 2015
Lokacija: Zagreb
Postovi: 695
|
Kad sam se već dotaknuo lakšeg modificiranja programa i debugginga dat ću još jedan primjer zašto treba koristiti funkcije. Kad sam se prvi put u susreo s programiranjem, korištenje funkcija (i klasa) mi se činilo sasvim bezveze i razmišljao sam u stilu: Ma to je za pi***, ja cijeli kod napišem u komadu i ako je krajnji rezultat točan, onda sam miran, no vrlo brzo sam shvatio da je taj način razmišljanja kriv. Primjer: Web shop koji prodaje računalne komponente daje 10% popusta za gotovinsko plaćanje. Kod koji određuje cijenu koju će kupac platiti izgleda ovako: Code:
def konacna_cijena(cijena_komponente, nacin_placanja): # 10% = 0.1 popust = 0.1 if nacin_placanja is 'gotovina': return cijena_komponente - popust*cijena_komponente else: return cijena_komponente # Kupac nazove i pita za cijenu AMD FX 8320 procesora, a trgovac mu odgovara: cijena_procesora = 1200 cijena_gotovina = konacna_cijena(cijena_procesora, 'gotovina') print('Za placanje gotovinom to ce vas kostati', cijena_gotovina, 'kn,') cijena_rate = konacna_cijena(cijena_procesora, 'rate') print('a ako placate na rate, onda je cijena', cijena_rate, 'kn.') Kada bi kod bio napisan tako da se za svaku komponentu konačna cijena računa zasebno kao što je to dano u primjeru ispod, tada bi promjena iz 10 u 9% zahtijevala malo više vremena, a mogućnost da se nešto propusti promijeniti ili napravi krivo je daleko veća. Code:
def cijena_procesora(cijena_cpu, nacin_placanja): popust = 0.1 if nacin_placanja is 'gotovina': return cijena_cpu - popust*cijena_cpu else: return cijena_cpu def cijena_grafe(cijena_gpu, nacin_placanja): popust = 0.1 if nacin_placanja is 'gotovina': return cijena_gpu - popust*cijena_gpu else: return cijena_gpu def cijena_memorije(cijena_ram, nacin_placanja): popust = 0.1 if nacin_placanja is 'gotovina': return cijena_ram - popust*cijena_ram else: return cijena_ram ![]() Doduše, programe koji imaju veze s poslovanjem trgovine bilo bi bolje pisati objektno orijentirano, ali sada smo na funkcijama, pa sam onda korištenje klasa izostavio. |
![]() |
![]() |
![]() |
#40 |
only fool, not a horse
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,276
|
ups. nevidjeh čitavu drugu stranu teme.. Zadnje izmijenjeno od: rodney. 27.02.2015. u 22:56. |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#41 |
Buying Bitcoin
Datum registracije: Feb 2007
Lokacija: Croatia
Postovi: 7,852
|
Znači mene je bunilo kako on zna da se hours mora kopirat u h, a rate u r. Odgovor je: bitan je redoslijed unosa ? Znači ako imam: Code:
def suma(artikl1, artikl2): rezultat = artikl1 + artikl2 return rezultat jabuka = 170 kruska = 360 trosak = suma(jabuka, kruska) print trosak To mi se čini malo nezgrapno, šta kad programi postanu kompleksni, ko će više povezati gdje se koja vrijednost kopira ![]() |
![]() |
![]() |
![]() |
#42 |
only fool, not a horse
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,276
|
Sve mi se pomješalo sad u ovoj temi.. ![]() Da redosljed je bitan. |
![]() |
![]() |
![]() |
#43 |
Registered User
Datum registracije: Jan 2015
Lokacija: Zagreb
Postovi: 695
|
Upravo iz tog razloga nikada nećeš naići na preporuku da vidiš zadatak, otvoriš text editor i kreneš s nakucavanjem koda, već da prije nego i takneš tipkovnicu imaš posloženo što i kako ćeš raditi (npr. pseudokod ili dijagrami toka). |
![]() |
![]() |
![]() |
#44 |
Creeper
Datum registracije: May 2013
Lokacija: USS Enterprise (NCC-1701-B)
Postovi: 2,167
|
A koliko je teško/jednostavno kod prebaciti u .exe da bi se mogao izvršavati na drugom računalu?
__________________
If the only thing keeping a person decent is the expectation of divine reward then, brother, that person is a piece of sh*t |
![]() |
![]() |
![]() |
#45 |
Buying Bitcoin
Datum registracije: Feb 2007
Lokacija: Croatia
Postovi: 7,852
|
![]() Ok, hvala. |
![]() |
![]() |
![]() |
#46 |
E Pluribus UNIX
Datum registracije: Oct 2002
Lokacija: M82
Postovi: 6,516
|
IMNSHO, Pajton ti nije pravi izbor za raditi PE-ove. Zadnji puta kada sam bio primoran cackati po njemu, Py2exe nije bas bila neka sreca; no cinjenica je da je Pajton kud i kamo popularniji na non-Windows okruzenjima te dolazi zapakiran u dobrom dijelu Linux distribucija kao i OS X-u, gdje ti je takvo sto gotovo redundantno i nepotrebno.
__________________
Programer
Rok od dva mjeseca u stvari znači četiri, ali nikako ispod šest. Zadnje izmijenjeno od: Bubba. 28.02.2015. u 00:27. |
![]() |
![]() |
![]() |
#47 | |
Registered User
Datum registracije: Jan 2015
Lokacija: Zagreb
Postovi: 695
|
Citiraj:
Ako je svrha prebacivanja u .exe npr. samo da bi prijatelju pokazao da si napravio program koji nešto radi, onda je brže da i on instalira Python te kasnije ga makne s računala ako mu ne treba, nego da se ti boriš s tim. |
|
![]() |
![]() |
![]() |
#48 |
Premium
Datum registracije: Feb 2008
Lokacija: Zagreb
Postovi: 169
|
pyinstaller šljaka vrlo lako |
![]() |
![]() |
![]() |
#49 | |
Bazinga
Datum registracije: Nov 2007
Lokacija: Križevci
Postovi: 3,856
|
Citiraj:
Nazivi parametara kod deklaracije funkcije nemaju nikakve veze s nazivima parametara kod pozivanja funkcije. ![]() EDIT: Omg, opet nisam vidio paginaciju na dnu. ![]()
__________________
The best place to hide a dead body is page 2 of Google search results. |
|
![]() |
![]() |
![]() |
#50 | |
Guest
Postovi: n/a
|
Citiraj:
![]() ![]() Ono što meni smeta kod programskih jezika što većina tih programskih jezika ima nevjerovatno loše popisane programske naredbe u knjigama (bar one osnovne...) i objašnjene. Ljudi kreću od prvih primjera , a da praktički ne znaju šta kucaju i puno više vremena onda moraju provesti za kompom. Laički npr. to Vam je koda učite engleski, francuski, ruski , a da nemate niti jednog objašnjenja šta koja riječ znači, o gramatici bolje ni ne pričati... ![]() ![]() Zadnje izmijenjeno od: Busola29. 10.03.2015. u 15:59. |
|
![]() |
![]() |
#51 | |
E Pluribus UNIX
Datum registracije: Oct 2002
Lokacija: M82
Postovi: 6,516
|
Citiraj:
https://docs.python.org/2/reference/ Sve je vrlo jasno i precizno opisano, kao i u vecini programskih jezika. Sto tebi tocno fali?
__________________
Programer
Rok od dva mjeseca u stvari znači četiri, ali nikako ispod šest. |
|
![]() |
![]() |
![]() |
#52 |
Registered User
Datum registracije: Aug 2015
Lokacija: Prijedor
Postovi: 1
|
Da li neko zna da mi pojasni razliku izmedju GET i POST zahteva kad se koji koristi i konkretne jednostavnije primere da navede? Hvala |
![]() |
![]() |
![]() |
#53 |
only fool, not a horse
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,276
|
|
![]() |
![]() |
![]() |
#55 |
Registered User
Datum registracije: May 2007
Lokacija: u stanu
Postovi: 3
|
Instrukcije iz Pytona
Daje li netko instrukcije iz Pytona? pero.juric at gmajl |
![]() |
![]() |
![]() |
#56 | |
Premium
Datum registracije: Jan 2008
Lokacija: Rijeka
Postovi: 100
|
Citiraj:
![]() ![]() Tu su neki jos 2009 proglasavali Python "mrtvim, a ja kazem da ovom portalu treba vise ljudi koji znaju raditi u Pythonu. Zasto? https://pcchip.hr/softver/korisni/5-...rebao-nauciti/ https://www.tportal.hr/tehno/clanak/...posla-20170508
__________________
"The quieter you become, the more you are able to hear." Zadnje izmijenjeno od: Makaveli2. 27.08.2018. u 05:42. |
|
![]() |
![]() |
![]() |
#57 |
Premium
Datum registracije: Mar 2019
Lokacija: Zg
Postovi: 51
|
Uh, koliko tečaja.. ne znam odakle početi. Evo, ja bi htio početi učiti python, pun mi je k ekonomske struke, poslova 8-4, nemogucnosti rada od doma i rada sa ljudima od 70 godina. ![]() |
![]() |
![]() |
![]() |
#58 |
Premium
Datum registracije: Nov 2005
Lokacija: zg
Postovi: 1,424
|
Godinu dana ti nije dosta za pocet zaradjivati. Pogotovo ako mislis uciti uz posao. Osim ako kompletno zanemaris drustveni zivot ali i to bi moglo biti pre-malo vremena. To jedino mozes ako si dobar salesman uz WordPress, ali to je vise nalik radu u Wordu/Excelu nego programiranje. Trebati ce ti barem dvije, realno bi rekao tri, godine. Mozda pokusati naci neku firmu koja trazi pocetnike ali tu ce biti potrebno pokazati entuzijazam. Ako si mozes priustiti, uplati si neki tecaj. To ce te natjerati nakon radnog dana da i dalje ucis. Steci ces i neka poznanstva, a i preskakanje cjelina (koje ce te kasnije kostati) ce biti minimalizirano. Ali bez konstantnog samostalnog rada (i uz najbolji tecaj) zaboravi tu pricu. S druge strane, programiranje je jedan posao gdje sati vrlo lako prolete pa ako ti je dosta ljudi moze biti zgodan bijeg. Ali racunaj par godina ozbiljnog rada prije nego postane isplativo. Isplati se svakako, samo vidi jel imas ili mozes naci tu disciplinu u sebi. Za Phyton stvarno ne znam. Mozda radje JAVAu, ili PHP ako bi radio web. Ali opet, na pocetku ce ti to sve biti vise manje isto dok ne pohvatas osnove. Samo nabavi najnoviju reviziju knjige. Iako, cini se da je Python puno popularniji nego sam mislio: https://stackify.com/popular-program...anguages-2018/ |
![]() |
![]() |
![]() |
#59 |
Premium
Datum registracije: Apr 2016
Lokacija: u svemiru :)
Postovi: 194
|
Sličnog sam razmišljanja i struke kao kolega nhooyd radio sam u banci dobrih 5 godine zgorio , računala volim od malih,ranih nogu bavio se računalnim servisom. Prešao prije 2 godine u informatičku firmu koja se bavi tehničkom službom, support , održavanje servera i sl. znao sam 10% onoga što traže. Lova nije bila velika neki odustali i nekako sam se zaposlio. Trebalo mi je skoro 2 godine da pohvatam servere, dhcp, dns, GP i sl. jer to nisam nikad prije radio.Tako da može se samo treba učiti učiti učiti nije lako još doma imam klince tako da sam gledao tečajeve od 22h do 1h ujutro skoro svaki dan na miru. Sad prelazim na programiranje i krećem od Phytona, učim ga eto mjesec dana počeo sam kužiti možda 2% svega ali ne dam se obeshrabiti jer je uvijek ono "wtf zašto je to tu i čemu to služi, tko će naučiti sve to ......" Našao sam tonu tečajeva on line, youtube, torrenti, udemy i sl. samo nisu svi kvalitetni izgubiš dosta i vremena tražeći šta valja jbg. Računam da će mi trebati 2 god. da počnem kužiti svrhu svega. kolega hash je spomenuo "kvalitetne tečajeve" šta preporučuješ ? |
![]() |
![]() |
![]() |
#60 | |
Premium
Datum registracije: Mar 2019
Lokacija: Zg
Postovi: 51
|
Citiraj:
Hvala na odgovoru, gledam si baš benefite odjebavanja zivota preko tjedna (vikendom sigurno imam 5-6 sati za odvojit za sve). Ili malo zaglaviti par godina ili do kraja zivota trpat se po firmama, računovodstvima, radit od 8 do 4 etc etc, ja se evo, nakon godinu dana zelim objesit lagano pa ozbiljno razmisljam da promjenim karijeru. Iako sam isto razmisljao o raznim tecajevima za mreze i slicno, nisam se jos udlucio, gledam samo kako bi se makao što brze od ovog svega (iako sam ja mozda malo "zaluđen" koliko imam poznanika po IT firmama jer sam strasno zavidan kada cujem da netko radi od doma, da ima te fun evente na poslu i ne radi sa ljudima od 50 godina - imam 27). Nista, vrijeme da odem na udemy i otvorim tecaj konacno. ![]() |
|
![]() |
![]() |
|
|
Oglas
|
|
![]() |
Uređivanje | |
|
|