Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Python def glupo_se_osjećam():

[es] :: Python :: Python def glupo_se_osjećam():

[ Pregleda: 1619 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darijo89
Darijo Živković

Član broj: 346073
Poruke: 6
*.adsl.net.t-com.hr.



Profil

icon Python def glupo_se_osjećam():07.02.2021. u 17:44 - pre 38 meseci
Naime, već mjesecima, više od pola godine pokušavam shvatiti definiranje Python funkcija. Međutim nikako da mi sjedne. Problem mi je najviše što nikako ne mogu naći tutorijal, edukatora koji to objasni u tančine, doslovce da mi odgovori na sva moja pod pitanja. Naime, sve što sam do sada našao, mi je nekako polovično, pa na kraju ispadne mi još konfuznije. Tipa zašto se neki puta koristi print, a neki puta return i razno razne kombinacije. Osjećam se kao totalni idiot koji tapka u mraku. Python, Pandas učim već 15 mjeseci, ali to nikako da savladam i da mogu reći da znam.
 
Odgovor na temu

mjanjic
Šikagou

Član broj: 187539
Poruke: 2679



+690 Profil

icon Re: Python def glupo_se_osjećam():07.02.2021. u 22:55 - pre 38 meseci
Onda nije problem u Python-u, nego generalno u shvatanju funkcija u programiranju.

Bolje pogledaj neki jezik koji je više okrenut funkcionalnom programiranju, recimo JavaScript je jedan od takvih (čisto funkcionalni programski jezici, tipa Haskell-a nisu baš nešto u upotrebi danas, ali postoji PureScript koji se transpajlira u JavaScript).

Uglavnom, možeš da uzmeš primere iz bilo kog jezika koji podržava funkcije, i pogledaš poglavlje o funkcijama, gde je to sigurno bolje objašnjeno.

To što pitaš za print i return, print u samoj funkciji vrši direktno "štampu" (na konzoli), čisto da se vidi da funkcija radi ono što treba da radi, što se vrlo retko koristi u praksi, dok "return" vraća neku vrednost dobijenu na osnovu izvršavanja koda unutar funkcije, i ta vrednost se vraća tamo odakle je izvršen poziv funkcije, a što se često kombinuje sa dodelom te povratne vrednosti nekoj promenljivoj, npr. "proizvod = funcMultiply(x,y)".

To sve imaš lepo objašnjeno u knjigama za početnike u programiranju, što uglavnom nisu knjige za Python, jer se tu često uzima da čitaocu to nije prvi programski jezik koji uči, ili autori takvih knjiga jednostavno ne znaju da se spuste na nivo početnika, pošto ni njima Python nije prvi programski jezik.
Zato nađi neku knjigu za početnike u programiranju, koja se bavi algoritmima, a ne sintaksom nekog konkretnog programskog jezika.
Dobar izbor je literatura na temu Uvod u programiranje i sl.


Recimo, ovde: https://www.tutorialspoint.com/python/python_functions.htm
autor objašnjava kako se parametri kod Python funkcija uvek prosleđuju kao reference, što nije tačno, to važi za NIZOVE i druge "mutable" tipove podataka kod Python-a, a za nizove je isti slučaj i kod mnogih drugih programskih jezika, dok se brojevi i stringovi prosleđuju po vrednosti kod Python-a (pošto spadaju u immutable tipove podataka, koji se tako prosleđuju), a što za ove tipove podataka važi kod većine drugih programskih jezika.
Čak i da je unutar funkcije koristio drugi naziv za parametar (lokalna promenljiva), u slučaju da je niz rezultat bi bio isti. Ali, u slučaju da je u pitanju string ili broj (kod JS-a bilo koji prost tip podataka, a kod Python-a svi immutable tipovi podataka), rezultat ne bi bio isti, jer i kada se kao parametar funkcije koristi isti naziv kao za globalnu promenljivu, parametar se tretira kao lokalna promenljiva.

I onda, kad početnik čita takav tutorijal, totalno se pogubi, ili u najboljem slučaju izvuče pogrešan zaključak!


Igrom slučaja nađoh da na ETF-u na smeru SI rade Python na predmetu Porgramiranje 1, pa imaš prezentaciju o funkcijama, gde je dosta toga objašnjeno za apsolutne početnike: http://rti.etf.bg.ac.rs/rti/ir...davanja/P1_Python_funkcije.pdf
A možeš pogledati i druge prezentacije sa predavanja, kao i materijal sa vežbi: http://rti.etf.bg.ac.rs/rti/ir1p1/materijal.html
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
 
Odgovor na temu

darijo89
Darijo Živković

Član broj: 346073
Poruke: 6
*.adsl.net.t-com.hr.



Profil

icon Re: Python def glupo_se_osjećam():08.02.2021. u 14:16 - pre 38 meseci
Hvala ti najljepša. Na kraju ispada, da problem uopće nije do mene, nego do loših edukatora.
 
Odgovor na temu

darijo89
Darijo Živković

Član broj: 346073
Poruke: 6
*.adsl.net.t-com.hr.



Profil

icon Re: Python def glupo_se_osjećam():08.02.2021. u 14:30 - pre 38 meseci
[quote]mjanjic:
Onda nije problem u Python-u, nego generalno u shvatanju funkcija u programiranju.

Bolje pogledaj neki jezik koji je više okrenut funkcionalnom programiranju, recimo JavaScript je jedan od takvih (čisto funkcionalni programski jezici, tipa Haskell-a nisu baš nešto u upotrebi danas, ali postoji PureScript koji se transpajlira u JavaScript).

Uglavnom, možeš da uzmeš primere iz bilo kog jezika koji podržava funkcije, i pogledaš poglavlje o funkcijama, gde je to sigurno bolje objašnjeno.

To što pitaš za print i return, print u samoj funkciji vrši direktno "štampu" (na konzoli), čisto da se vidi da funkcija radi ono što treba da radi, što se vrlo retko koristi u praksi, dok "return" vraća neku vrednost dobijenu na osnovu izvršavanja koda unutar funkcije, i ta vrednost se vraća tamo odakle je izvršen poziv funkcije, a što se često kombinuje sa dodelom te povratne vrednosti nekoj promenljivoj, npr. "proizvod = funcMultiply(x,y)".

To sve imaš lepo objašnjeno u knjigama za početnike u programiranju, što uglavnom nisu knjige za Python, jer se tu često uzima da čitaocu to nije prvi programski jezik koji uči, ili autori takvih knjiga jednostavno ne znaju da se spuste na nivo početnika, pošto ni njima Python nije prvi programski jezik.
Zato nađi neku knjigu za početnike u programiranju, koja se bavi algoritmima, a ne sintaksom nekog konkretnog programskog jezika.
Dobar izbor je literatura na temu Uvod u programiranje i sl.


Ako sam dobro razumio: print -automatski prikazuje rezultat, a return prikazuje rezultat kada ga povežemo s nekom varijablom

def multy(x,y):
result = x*y
return result

a = 5
b = 5

print(result(a,b)

I onda je 25


Python mi treba zbog Pandas i ostatka ekipe.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Python def glupo_se_osjećam():08.02.2021. u 15:03 - pre 38 meseci
U nekim programskim jezicima postoji razlika između procedure i funkcije.
Python, po ugledu na C, ne pravi razliku, sve je funkcija.

Recimo u nekom programskom jeziku, možeš da imaš sledeće klauzule:
PROCEDURE <IME_PROCEDURE>(<LISTA_ARGUMENATA>)
i
FUNCTION <IME_FUNKCIJE>(<LISTA_ARGUMENATA>) RETURN <TIP_PODATKA>

Razlika je u tome što funkcija vraća rezultat, procedura ne vraća (osim što postoji mogućnost da izmeni neki od ulaznih parametara. Neću dalje da komplikujem)

U takvim programskim jezicima, procedura se zavrašava sa poslednjom linijom koda i kontrola se vraća na pozivajuću proceduru. Funkcija se završava komandom RETURN iza koje seldi izraz. Ako se funkcija ne završi RETURN komandom, javlja se sintaksna greška prilikom kompajliranja ili u run-time.

Poziv funkcije u takvim jezicima može da se pojavi u izrazima, sa DESNE strane komande dodele.
Recimo
X=SIN(A)
Sintaksno neispravno bi bilo napisati
SIN(A)

Sa druge strane, poziv procedure ne može da se pojavi u izrazu. Tako bi
X=PRINT(A)
bilo sintaksno neispravno, a
PRINT(A)
PRINT(SIN(A))
sintaksno ispravno

Python ima def, pa kod koji sledi iza toga, logički posmatrano, može biti "procedura" ili "funkcija".
Šta će funkcija da vrati i da li će uopšte nešto da vrati, odlučuje sam programer.
Ako u funkciji nemaš return, poziv funkcije vraća None.
Verovao, ili ne, za Python je i "print" funkcija. U drugim programskim jezicima print može da vrati broj karaktera koji je ispisao, ili tekst koji je ispisan, ili kod greške/uspeha

Pogledaj primer dole:

Code:
Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("a")
a
>>> print(print("a"))
a
None
>>> import math
>>> x=math.sin(math.pi/6.0)
>>> x
0.49999999999999994
>>>
 
Odgovor na temu

darijo89
Darijo Živković

Član broj: 346073
Poruke: 6
*.adsl.net.t-com.hr.



Profil

icon Re: Python def glupo_se_osjećam():08.02.2021. u 16:07 - pre 38 meseci
Bezveze kako god da okreneš. Naprosto osjećam se kao idiot. Gledam neke stvari napišem, neke koje želim ne mogu, jer se netko igra stručnjaka. I svi tutorijale rade na isti kalup, umjesto da se nadovezuju, da pojednostave itd. Daj napravi tutorijal, da se i najgluplji mogu snaći.
 
Odgovor na temu

Doktor Hlad

Član broj: 337261
Poruke: 739



+192 Profil

icon Re: Python def glupo_se_osjećam():08.02.2021. u 17:04 - pre 38 meseci
Citat:
darijo89: Bezveze kako god da okreneš. Naprosto osjećam se kao idiot. Gledam neke stvari napišem, neke koje želim ne mogu, jer se netko igra stručnjaka. I svi tutorijale rade na isti kalup, umjesto da se nadovezuju, da pojednostave itd. Daj napravi tutorijal, da se i najgluplji mogu snaći.


Nemoj pogresno da me shvatis ali ako posle 15 meseci nisi shvatio razliku izmedju print i return i jos uvek nisi shvatio da je problem do tebe nego si umesto toga ljut na sve ostale jer ne umeju da ti objasne... onda je problem definitivno do tebe.

Na YouTube postoji bezbroj besplatnog sadrzaja na temu koja tebe zanima. Imao sam u poslednjih 20 godina bezbroj poznanika i prijatelja koji su zeleli da nauce osnove programiranja. Obicno se njihov stav deli u dve grupe:

1. "Ok, ja o ovome nista ne znam, ajde da ucim deo po deo"
2. "Ovo je bez veze, uopste nije logicno, ne treba ovako, bolje bi bilo da je onako" (u sustini sva enegija odlazi na filozofiranje umesto na ucenje)

Bojim se da si ti za sada ovaj drugi. Takvi obicno na kraju odustanu. Zato, ili se prebaci u ovu prvu grupu ili odustani. To ti je najkorisniji savet koji mogu da ti dam.
 
Odgovor na temu

B3R1
Berislav Todorovic
NL

Član broj: 224915
Poruke: 794



+630 Profil

icon Re: Python def glupo_se_osjećam():08.02.2021. u 17:36 - pre 38 meseci
Kada je u pitanju Python postoji vec brdo literature i na srpskom, nema potrebe da se mucis s engleskim. Recimo, imas ovaj besplatni udzbenik pisan za osnovne skole u izdanju Fondacije Petlja - Pajton prirucnik. Pocinje zabavnom igrackicom gde deca uce koncepte programiranja kroz pomeranje loptica. Onda idu tezi primeri.

P.S. Postoje ljudi kojima programiranje ne ide. Bas kao sto ni programerima ne idu od ruke mnoge druge stvari u zivotu ... Nismo svi isti i nije svaki zanat za svakoga. Ako ne ide ili osecas otpor prema materiji - batali.
 
Odgovor na temu

darijo89
Darijo Živković

Član broj: 346073
Poruke: 6
*.adsl.net.t-com.hr.



Profil

icon Re: Python def glupo_se_osjećam():08.02.2021. u 17:57 - pre 38 meseci
Citat:
Doktor Hlad:
Citat:
darijo89: Bezveze kako god da okreneš. Naprosto osjećam se kao idiot. Gledam neke stvari napišem, neke koje želim ne mogu, jer se netko igra stručnjaka. I svi tutorijale rade na isti kalup, umjesto da se nadovezuju, da pojednostave itd. Daj napravi tutorijal, da se i najgluplji mogu snaći.


Nemoj pogresno da me shvatis ali ako posle 15 meseci nisi shvatio razliku izmedju print i return i jos uvek nisi shvatio da je problem do tebe nego si umesto toga ljut na sve ostale jer ne umeju da ti objasne... onda je problem definitivno do tebe.

Na YouTube postoji bezbroj besplatnog sadrzaja na temu koja tebe zanima. Imao sam u poslednjih 20 godina bezbroj poznanika i prijatelja koji su zeleli da nauce osnove programiranja. Obicno se njihov stav deli u dve grupe:

1. "Ok, ja o ovome nista ne znam, ajde da ucim deo po deo"
2. "Ovo je bez veze, uopste nije logicno, ne treba ovako, bolje bi bilo da je onako" (u sustini sva enegija odlazi na filozofiranje umesto na ucenje)

Bojim se da si ti za sada ovaj drugi. Takvi obicno na kraju odustanu. Zato, ili se prebaci u ovu prvu grupu ili odustani. To ti je najkorisniji savet koji mogu da ti dam.


Ja sam išao dio po dio. Problem je što su mi funkcije komplicirane, tražio sam tutorijale, pročitao pregledao hrpu istih, na kraju čitao sam i tutorialspoint... Da bi mi ti ukazao da je lik zaj***o jer nema pojma. Može se i meni naći mana, ali života ti ako nešto objašnjavaš, onda objasni na što jednostavnije i temeljitije, spusti se na moju razinu, a nemoj filozofirati kako bi ti se netko divio da si pametan i načitan. Jer realno, meni to ništa ne znači. Meni znači kada mi netko pokaže ili pošalje resurs iz kojega mogu učiti, pa onda malo po malo naprijed. Na Youtube sam našao dobre edukatore, ali niti oni nisu se previše zadržavali, na onome što mene muči. Ja kada njih skontam, ja sam na konju, ali dok ih ne skontam, ja sam pred zidom.
 
Odgovor na temu

darijo89
Darijo Živković

Član broj: 346073
Poruke: 6
*.adsl.net.t-com.hr.



Profil

icon Re: Python def glupo_se_osjećam():08.02.2021. u 17:59 - pre 38 meseci
P.S. Postoje ljudi kojima programiranje ne ide. Bas kao sto ni programerima ne idu od ruke mnoge druge stvari u zivotu ... Nismo svi isti i nije svaki zanat za svakoga. Ako ne ide ili osecas otpor prema materiji - batali.[/quote]

Imam volju, ali ako nemam dobroga edukatora, jako je teško. Ja nemam osnovu iz matematike, nikakvu, samim time mi je teže, ali ako je nešto za početnika, onda se spuštamo na tu razinu, kako sam već i naveo.
 
Odgovor na temu

mjanjic
Šikagou

Član broj: 187539
Poruke: 2679



+690 Profil

icon Re: Python def glupo_se_osjećam():08.02.2021. u 19:41 - pre 38 meseci
Najbolje se uči na primerima, ali ne tuđim, nego svojim.
Tuđe primere gledaš kad ne možeš da skontaš neki korak ili kako da uradiš neki konkretan detalj, npr. kako da ti funkcija vrati više vrednosti odjednom, a da ne kreiraš niz - kod Python-a je to rešeno baš elegantno :)

Prvo naučiš elementarnu sintaksu. Isto to važi i za funkcije. Ako ima povratnu vrednost, imaš "return izraz/promenljiva/vrednost", ako nemaš, onda samo return.
Ptom, recimo da ti treba funkcija koja ispisuje tablicu množenja do mxn za date m i n. Dakle, ne samo da izračuna, nego da ti to lepo odštampa. Kod Python-a malo teže ako štampaš na konzoli, ali možeš da koristiš "|" i "-" karaktere, za neki napredniji nivo mogu oni karakteri za tabele koji su se koristili na terminalima, ali nisam siguran da ih ovi moderni fontovi podržavaju.
Uglavnom, za početak možeš da napraviš funkciju koja ispisuje tablicu množenja do 10x10, pa je posle modifikuj za mxn, a štampu reši unutar same funkcije, pri čemu povratna vrednost može da bude neka poruka, tipa "Uspešno napravljena tablica množenja do mxn".
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: Python def glupo_se_osjećam():08.02.2021. u 22:59 - pre 38 meseci
Programiranje zahteva neke bazične veštine - logiku i sposobnost apstraktnog mišljenja.

Ko ne barata solidno apstrakcijama, teško da može da ode dalje od "Hello World"-a.
 
Odgovor na temu

mjanjic
Šikagou

Član broj: 187539
Poruke: 2679



+690 Profil

icon Re: Python def glupo_se_osjećam():09.02.2021. u 10:13 - pre 38 meseci
Pa i "Hello world" može da bude nezgodan, jeste jednostavno kad se koristi čist programski jezik, ali ako se uzme primer nekog framework-a, onda... Mada, meni je idiotski da se "Hello world!" koristi kao početni primer kod FW-a, jer se ne vidi poenta korišćenja tog FW-a – ogromna količina koda za običan paragraf statičkog teksta.
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
dynamic-62-240-25-130.cpe.sn.co.rs.



+1064 Profil

icon Re: Python def glupo_se_osjećam():09.02.2021. u 10:24 - pre 38 meseci
mjanjic:"ogromna količina koda za običan paragraf statičkog teksta."

https://www.smart-jokes.org/programmer-evolution.html

;)
 
Odgovor na temu

mjanjic
Šikagou

Član broj: 187539
Poruke: 2679



+690 Profil

icon Re: Python def glupo_se_osjećam():10.02.2021. u 18:03 - pre 38 meseci
Da, to sam video pre poprilično godina, ali i onaj primer za Javu: https://medium.com/@webseanhic...-software-engineer-db854689243

I kad smo već kod humora, A Brief, Incomplete, and Mostly Wrong History of Programming Languages: http://james-iry.blogspot.com/...complete-and-mostly-wrong.html

Blessed are those who can laugh at themselves, for they shall never cease to be amused.
 
Odgovor na temu

[es] :: Python :: Python def glupo_se_osjećam():

[ Pregleda: 1619 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.