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

Re: Python 2.4 - finalna verzija

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

Strane: 1 2

[ Pregleda: 1574 | Odgovora: 27 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

alex
Aleksandar Radulovic
Team/Project Manager, Software Development, Síminn hf.
Reykjavik, Iceland

Administrator
Član broj: 71
Poruke: 2105
*.siminn.is.

Jabber: maurice.chavez@gmail.com
ICQ: -1
Sajt: www.a13x.info


Profil

icon Re: Re: Python 2.4 - finalna verzija26.04.2007. u 10:57
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)
26.04.2007. u 10:57 

StefanJer91
Stefan Jeremic
Beograd

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



Profil

icon Re: Re: Python 2.4 - finalna verzija20.05.2007. u 14:26
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
20.05.2007. u 14:26 

Au197/79
NBGD

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



Profil

icon Re: Re: Python 2.4 - finalna verzija20.05.2007. u 22:00
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.
20.05.2007. u 22:00 

StefanJer91
Stefan Jeremic
Beograd

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



Profil

icon Re: Re: Python 2.4 - finalna verzija21.05.2007. u 13:41
Hvala ti za ovo ali sta da radim ako mi treba 100 i vise decimala?
21.05.2007. u 13:41 

alex
Aleksandar Radulovic
Team/Project Manager, Software Development, Síminn hf.
Reykjavik, Iceland

Administrator
Član broj: 71
Poruke: 2105
*.siminn.is.

Jabber: maurice.chavez@gmail.com
ICQ: -1
Sajt: www.a13x.info


Profil

icon Re: Re: Python 2.4 - finalna verzija22.05.2007. u 15:01
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)
22.05.2007. u 15:01 

StefanJer91
Stefan Jeremic
Beograd

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



Profil

icon Re: Re: Python 2.4 - finalna verzija22.05.2007. u 20:22
Ne razumem najbolje. Mozes li ako nije problem da postavis kod za npr. 40 decimala?
22.05.2007. u 20:22 

alex
Aleksandar Radulovic
Team/Project Manager, Software Development, Síminn hf.
Reykjavik, Iceland

Administrator
Član broj: 71
Poruke: 2105
*.siminn.is.

Jabber: maurice.chavez@gmail.com
ICQ: -1
Sajt: www.a13x.info


Profil

icon Re: Re: Python 2.4 - finalna verzija23.05.2007. u 10:07
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)
23.05.2007. u 10:07 

StefanJer91
Stefan Jeremic
Beograd

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



Profil

icon Re: Re: Python 2.4 - finalna verzija23.05.2007. u 12:43
Ne. On mi izbaci 3.3333333333333335000000000000000000000000, a treba mi 3. (39 decimala od 3 pa na kraju 7)
23.05.2007. u 12:43 

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

Strane: 1 2

[ Pregleda: 1574 | Odgovora: 27 ]

Postavi temu Odgovori

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