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

Re: Python 2.4 - finalna verzija

[es] :: Python :: Re: Python 2.4 - finalna verzija

Strane: 1 2

[ Pregleda: 5667 | Odgovora: 27 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.siminn.is.

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Re: Python 2.4 - finalna verzija26.04.2007. u 10:57 - pre 205 meseci
Python prenosi varijable preko vrednosti, a ne referenci. Takodje, Python prenosi varijable preko referenci, ne vrednosti. Sad, kako je to moguce?

Odgovor na to se moze naci u tome kako ko shvata pojam "prenos varijable preko reference" - u pythonu, sve varijable su interno prezentovane kao adrese (ka delu memorije gde su cuvane) i te adrese se prenose preko vrednosti te adrese. To se moze shvatiti i kao prenos vrednosti a i kao prenos reference (adresa je referenca). U oba slucaja, znaci istu stvar. Ergo, obe tvrdnje sa pocetka moje poruke izgledaju kao tacne (zavisno kako ko shvata pojam reference).

Dalje, pojam prenosa varijabli u python jeziku je specifican. Govorimo o imenima i dodeli - kada se varijabla dodeli funkciji kao argument, to je u sustini dodela vrednosti varijable novom imenu varijable (u lokalnom namespace-u funkcije), tako da ce to novo ime da ima vrednost originalnog objekta. Kada izvrsimo dodelu nove vrednosti tom imenu u samoj funkciji, to ime se jednostavno vezuje za novu vrednost.

Sad, konfuzija nastaje kod Python tipova - python sadrzi mutable i imutable tipove. Python imutable tipovi (kao sto se vidi u gorespomenutim primerima) se ne mogu menjati i vezivanje nove vrednosti fakticki kreira novi imutable objekat sa novom vrednoscu, i originalan objekat se ne menja, dok se mutable tipovi (list, dict i objekti) mogu menjati u funkcijama u kojima su preneti (jer je promena vrednosti vidljiva svim imenima/varijablama kojima je dodeljena ta vrednost!).

No, s obzirom na prirodu python jezika, ova konfuzija i ne bi trebalo da bude problem, jer sâm jezik maltene forsira programera da postuje OO principe programiranja.

Na python mailing listi se moze naci veliki broj diskusija na tu temu i ima dosta veoma kvalitetnih objasnjenja, ukoliko zelite vise informacija.

Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

StefanJer91
Stefan Jeremic
Beograd

Član broj: 121923
Poruke: 160
*.mainstream.co.yu.



Profil

icon Re: Re: Python 2.4 - finalna verzija20.05.2007. u 14:26 - pre 204 meseci
Ljudi jel za neko kako da odredim broj decimala koje treba da se ispisu posle broja? Npr imam broj 6.2423465446 i zelim da imam 3 decimale i on izbaci 6.242
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
 
Odgovor na temu

Au197/79
Zlatan Kadragić
Minhen

Član broj: 3556
Poruke: 772
*.adsl.beotel.net.

Sajt: aurelije.blogspot.com


+47 Profil

icon Re: Re: Python 2.4 - finalna verzija20.05.2007. u 22:00 - pre 204 meseci
Imaš u dokumentaciji kad otvoriš index pa prva stavka "% formating", a imaš i u tutorijalu o input i output-u.
Konkretno tebi treba nešto ovako:
Code:
print "%.3f" % (10.0/3)

Ovde imaš string koji je prazan i u njemu mesto za broj (to je ono %.3f i to se ne pojavljuje u stringu) formatirano sa slovom f za float a .3 znači da iza decimalnog zareza ima samo 3 mesta. Onaj drugi % znači da se mesta u stringu ispred njega popunjavaju elementima liste iza % (u ovom slučaju imamo samo 1 element).
Bolje džaba ležat nego džaba radit.
 
Odgovor na temu

StefanJer91
Stefan Jeremic
Beograd

Član broj: 121923
Poruke: 160
*.kalik.info.



Profil

icon Re: Re: Python 2.4 - finalna verzija21.05.2007. u 13:41 - pre 204 meseci
Hvala ti za ovo ali sta da radim ako mi treba 100 i vise decimala?
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.siminn.is.

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Re: Python 2.4 - finalna verzija22.05.2007. u 15:01 - pre 204 meseci
Procitaj Python dokumentaciju, pre svega - odgovore na tako osnovna pitanja uvek mozes prvo naci u dokumentaciji. Recimo, ovde:
Citat:

For safety reasons, floating point precisions are clipped to 50;


Python prompt koristi repr() funkciju, koja ima ogranicenu preciznost na 17 decimala. Ukoliko zelis vecu preciznost, postoji nekoliko nacina, jedan od kojih je implementacija svoje klase za float brojeve.
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

StefanJer91
Stefan Jeremic
Beograd

Član broj: 121923
Poruke: 160
*.kalik.info.



Profil

icon Re: Re: Python 2.4 - finalna verzija22.05.2007. u 20:22 - pre 204 meseci
Ne razumem najbolje. Mozes li ako nije problem da postavis kod za npr. 40 decimala?
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.siminn.is.

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Re: Python 2.4 - finalna verzija23.05.2007. u 10:07 - pre 204 meseci
Nesto mi govori da me nisi poslusao i procitao dokumentaciju.

Code:

print "%.40f" % (10.0/3)


Da li je sad jasnije?
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

StefanJer91
Stefan Jeremic
Beograd

Član broj: 121923
Poruke: 160
*.kalik.info.



Profil

icon Re: Re: Python 2.4 - finalna verzija23.05.2007. u 12:43 - pre 204 meseci
Ne. On mi izbaci 3.3333333333333335000000000000000000000000, a treba mi 3. (39 decimala od 3 pa na kraju 7)
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
 
Odgovor na temu

[es] :: Python :: Re: Python 2.4 - finalna verzija

Strane: 1 2

[ Pregleda: 5667 | Odgovora: 27 ] > FB > Twit

Postavi temu Odgovori

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