[ NaHCO3 @ 17.04.2013. 20:54 ] @
Krenuo sam da ucim python. I nije mi jasno nesto u vezi blokova. Da li je moguce da moram da lupim 4 space-a za svaki blok???

Ovakvo programiranje nema smisla. Ili sam nesto propustio :)
[ pajaja @ 17.04.2013. 21:58 ] @
Citat:
Da li je moguce da moram da lupim 4 space-a za svaki blok???

Tako je, python koristi identaciju koda za odvajanje blokova. Da li ima ili nema smisla je vec diskutabilno, popularnost python-a kaze da ima smisla. Ako nista, bar te donekle tera da citljivo formatiras kod, inace nece ni raditi :)
[ NaHCO3 @ 17.04.2013. 22:03 ] @
Ne mogu da verujem :D

Sta ako imam nekoliko, lupam ugnjezdenih if-ova ili for-ova, moram 30-ak puta da lupim space.
Na ovaj nacin necu nikad isprogramirati nesto ozbiljno a da pri tom ne polomim tastaturu ;)
[ pajaja @ 17.04.2013. 22:11 ] @
Ako imas editor koji ne radi indentaciju automatski ne vidim koja je razlika izmedju toga sto ces u pythonu morati da kliknes 20x space i toga sto ces u C-u morati posle { da kliknes 20x space. Pod pretpostavkom da radis indentaciju koda i u jezicima koji to ne zahtevaju (kao sto bi trebalo da radis), jedinu razliku koju primecujem je odsustvo viticastih zagrada. I naravno, uvek mozes da nadjes neki drugi jezik :)
[ NaHCO3 @ 17.04.2013. 22:19 ] @
Ali u C-u posle viticaste zagrade mogu da lupim 2-3 taba a ne spejsa. U python-u nije humano, nema taba :)
[ pajaja @ 17.04.2013. 22:32 ] @
Mozes da koristis i tab ali nije preporuceno zbog mogucnosti da ga negde pomesas sa spejsom. Tehnicki mozes da koristis i jedan spejs umesto 4. Ono sto je bitno je relativna razlika u indentaciji u odnosu na prethodnu liniju. Vecina editora po defaultu ubacuje umesto tab-a 4 spejsa, ako ne obicno postoji u opcijama takva mogucnost. Sve u svemu, sve te probleme resava i najobicniji tekst editor sa osrednjim funkcijama.
[ Tyler Durden @ 17.04.2013. 22:32 ] @
Kako mislis, "nema taba"?
Bitna je indentacija, da bude ispracena kako ti ide logika. Sad, da li ces ti da koristis space ili tab za to, python uopste ne zanima...

Pretece me..
[ NaHCO3 @ 17.04.2013. 22:50 ] @
Aha, ma cini mi se da sam proba sa tabom i da mi je bacao neki exception. Kada sam stavio spejsove radilo je.
Da, verovatno postoji opcija da umesto taba ubacuje spejsove.

Hvala na odgovorima
[ Stojan Trifunovic @ 18.04.2013. 19:08 ] @
Python interpreter apsolutno ne zanima da li će se za identaciju koristiti jedan space, dva space (ovo je prihvaćeno u Google), četiri space (ovo preporučuje autor Pythona), tab, dva taba ili bilo koje druge kombinacije. Bitno mu je jedino da se u celom progamu koristi jedno te isto označavanje.

Znači, ako se počelo sa TAB iz početka, Python traži da se TAJ standard ispoštuje do kraja. Ako se krenulo sa dva, tri, četiri TAB-a ili jednim, dva tri, četiri, osam SPACE, onda to treba ispoštovati do kraja. Nije bitno koji će se način identacije primeniti, ali jeste bitno da se kako počne, tako i završi.

Tab identacija NE SME se kombinovati sa space identacijom, iako eventualno mogu izgledaju isto. U tom slučaju interpreter će prijaviti grešku.
[ mls34 @ 18.04.2013. 20:36 ] @
Pročitaj PEP 8, tu ćeš naći najbolje preporuke autora Pythona u vezi stila pisanja programa.
[ Burgos @ 18.04.2013. 20:46 ] @
Ne znam da li je neko napisao, na pauzi sam, pa ne čitam celu temu:

Podesi svoj tekst editor da ti tabove zamenjuje sa razmacima. Ja koristim 4.

U notepad++ - Settings -> Prefs. -> Language Menu/Tab settings -> Odabereš Python -> Replace by space

U emacs-u;

Code:
;; Python Hook
(add-hook 'python-mode-hook
          (function (lambda ()
                      (setq indent-tabs-mode nil
                            tab-width 4))))


Naravno, aluzija na http://xkcd.com/378/


Code:
M-x untabify
[ vukasin0 @ 23.06.2013. 10:44 ] @
Svakako preporucujem PEP8 - super je sve objasnjeno.

Ja koristim SublimeText editor koji ima super foru da tab automatski pretvori u 4 space-a ili koliko ti podesis.

Za Python developer-e ovo je super.