kemi (statz) | #2, Főfasz (2970) |
134 | #1290 | ^ | Idézet | Sun, 09 Jan 2011 18:53:55 +01 |
89.134.*.* | *.catv.broadband.hu |
Pythonban van ennél valamivel szebb megvalósítása a hátultesztelő ciklusnak?:while True: . . . if [valami]: break |
TCH (statz) | #1, Főfasz (10443) |
187 | #1291 | ^ | Idézet | Sun, 09 Jan 2011 19:08:00 +01 |
78.92.*.* | *.pool.t-online.hu |
Ahogy néztem nincsen. A Python csak while és for loopokat tartalmaz. Viszont a ciklusokat és az if struktúrákat kajakra úgy kell megírni, hogy ami belül van, az előtt tab vagy szóköz van? |
kemi (statz) | #2, Főfasz (2970) |
313 | #1292 | ^ | Idézet | Sun, 09 Jan 2011 19:23:39 +01 |
89.134.*.* | *.catv.broadband.hu |
Nincs begin...end vagy kapcsos zárójel, hanem az tartozik 1 blokkba, ahol egyenlő a sorok behúzása. Hogy szóköz vagy tab, vagy hány szóköz meg tab van előtte az nem érdekli, csak az összetartozó soroknak egyenlő legyen a behúzása. Ha meg 1 utasításból áll a ciklus vagy if struktúra akkor írhatod simán egy sorba. |
TCH (statz) | #1, Főfasz (10443) |
34 | #1293 | ^ | Idézet | Sun, 09 Jan 2011 20:37:19 +01 |
78.92.*.* | *.pool.t-online.hu |
Úristen, micsoda balfasz megoldás. |
kemi (statz) | #2, Főfasz (2970) |
355 | #1294 | ^ | Idézet | Mon, 10 Jan 2011 00:02:54 +01 |
89.134.*.* | *.catv.broadband.hu |
Kikényszeríti, hogy tabulátorozz, ezáltal olvashatóbb legyen a kód. C-ben vagy Pascalban írok neked olyan kódot, hogy ember legyen aki azt értelmezni tudja. :D Pythonban nem tudod összekutyulni a kódot anélkül, hogy szólna érte a fordító, és ez része a filozófiájának. "There should be one, and preferably only one obvious way to do it." |
TCH (statz) | #1, Főfasz (10443) |
556 | #1295 | ^ | Idézet | Mon, 10 Jan 2011 11:24:02 +01 |
80.98.*.* | *.catv.broadband.hu |
Ez baromság. Értelmes ember (hacsak nem őrült géniusz), úgyis betördeli a kódot, mert neki is jobb. De hogy a fordító a space/tab-ra szabjon le egy ciklust?! Aztán egy helyen nyomok véletlenül egy spacet a tab előtt és máris debuggolhatom a kódot amíg akarom mert a tab előtt a space nem látszik! És a fordító ezért nem fog szólni, hiszen a kód valid, csak épp mivel rossz helyen van elvágva a ciklus, kurvára mást csinál, mint kéne. És mivel ilyet az elkúrt kód szokott csinálni, az ember miután 666x átnézte a kódját, majd vakarhatja a fejét, hogy miért. |
kemi (statz) | #2, Főfasz (2970) |
964 | #1296 | ^ | Idézet | Mon, 10 Jan 2011 15:58:25 +01 |
89.134.*.* | *.catv.broadband.hu |
for i in range(0, len(A)): A[i] = 255 - A[i] stdout.write(A[i]) stdout.write('\n')Most csak úgy a hasamra ütöttem, ne az értelmét nézd, de egy ilyen kód pl. nem érvényes. Elszáll a fordító a harmadik sorba "Unexpected indentation" hibával. Számolja a szóközöket/tabokat. Szívtam meg párszor Ctrl+C/Ctrl+V-nél, ha a beszúrásnál épp nem ott volt a kurzor ahol lennie kellett volna. Ha fordítható, akkor is ad egy warningot. Egyébként és őrült géniusz :D vagyok, és hajlamos vagyok nem tördelni a kódot, hacsak nem teszi meg automatice az IDE. Ha még kommentezve sincs még nekem is nehéz rajta átlátni. :P
|
TCH (statz) | #1, Főfasz (10443) |
620 | #1297 | ^ | Idézet | Mon, 10 Jan 2011 17:16:26 +01 |
80.98.*.* | *.catv.broadband.hu |
Ahham, szóval őrült géniusz vagy, na akkor te leszel innentől Doktor kemi! :D Ez az "Unexpected indentation" nem a legjobb ötlet, egy nagyon sok paraméteres függvényt én pl több sorba szoktam írni, pl PHP-ban, ha array az egyik param. function ize($array1, $array2) { return 'anyad'; } ize( array( 'kecske', 'lo', 'tehen', 'macska' ), array( 'trabant', 'skoda', 'barkasz', 'wartburg', 'polszki' ) );Na, ezt Pythonban pl hogy? Ezt minden épeszű nyelv tudja a C-től a Pascalig. |
kemi (statz) | #2, Főfasz (2970) |
647 | #1298 | ^ | Idézet | Mon, 10 Jan 2011 17:53:41 +01 |
89.134.*.* | *.catv.broadband.hu |
def ize(array1, array2): return 'anyad' ize( [ 'kecske', 'lo', 'tehen', 'macska' ], [ 'trabant', 'skoda', 'barkasz', 'wartburg', 'polszki' ] )Kipróbáltam, műxik így. A függvény argumentumában leütött entereket és szóközöket ignorálja. szerk: Ha így adsz meg egy tömböt: ize = ['valami1', 'valami2', 'valami3']működik, és elfogadott módja. A Python Coding Guidelines-ba benne van valahol. |
TCH (statz) | #1, Főfasz (10443) |
331 | #1299 | ^ | Idézet | Mon, 10 Jan 2011 21:06:40 +01 |
78.92.*.* | *.pool.t-online.hu |
Hoppá. Akkor lehet, hogy nem is szar annyira? :) Viszont ezzel az indent bordered szerkezettel továbbra sem vagyok kibékülve. Hogy a viharba dönti el, hogy mikor hibás az indent? Pl a kód amit adtál for i in range(0, len(A)): A[i] = 255 - A[i] stdout.write(A[i]) stdout.write('\n')miért nem érvényes? |
kemi (statz) | #2, Főfasz (2970) |
129 | #129a | ^ | Idézet | Mon, 10 Jan 2011 22:16:26 +01 |
89.134.*.* | *.catv.broadband.hu |
Mert beljebb húzni csak for if while stb. után szabad. Ha valahova becsúszik egy véletlen szóköz akkor kidob egy hibát a fordító. |
TCH (statz) | #1, Főfasz (10443) |
261 | #129b | ^ | Idézet | Mon, 10 Jan 2011 23:58:49 +01 |
78.92.*.* | *.pool.t-online.hu |
És ha nem többet teszel bele, hanem elfelejted behúzni az utolsó előtti sort?for i in range(0, len(A)): A[i] = 255 - A[i] stdout.write(A[i]) stdout.write('\n')Ez akkor teljesen valid, csak éppen 256 helyett csak egy karaktert ír ki. |
TCH (statz) | #1, Főfasz (10443) |
341 | #129c | ^ | Idézet | Tue, 11 Jan 2011 13:02:46 +01 |
80.98.*.* | *.catv.broadband.hu |
http://index.hu/tech/2011/01/10/informatikai_szerzodesekkel_15_milliardot_sporol_az_allam/ Olvassunk a sorok között! Nem arról van szó, hogy teljesen kukásítják az m$-t, hanem csak csökkentik a kiadást! Vagyis a releváns spórolások, csak egy részét jelentik annak az összegnek, ami kiment m$ szoftverre! A döntés viszont pozitív. |
kemi (statz) | #2, Főfasz (2970) |
257 | #129d | ^ | Idézet | Tue, 11 Jan 2011 13:31:21 +01 |
89.134.*.* | *.catv.broadband.hu |
Nemrég voltam polgármesteri hivatalban, mert lejárt a személyim. Az előtérben volt egy terminál, amin internetezni lehetett, megnéztem közelebbről, Ubuntu 10.04 figyelt rajta. :) Egy pluszpont az államnak, hogy nem mindenhol csak az M$ szarjait használják. |
TCH (statz) | #1, Főfasz (10443) |
240 | #129e | ^ | Idézet | Tue, 11 Jan 2011 21:29:32 +01 |
78.92.*.* | *.pool.t-online.hu |
Hát az a terminál az a helyi önkorm. döntése volt, szóval a plusz pont nekik jár érte. :) Viszont tényleg ezért a 15 milliárdos spórolási döntésért jár a plusz pont a kormánynak is. Végre valami értelmes dolog is történik a parlamentben. :P |
kemi (statz) | #2, Főfasz (2970) |
622 | #129f | ^ | Idézet | Thu, 13 Jan 2011 09:58:06 +01 |
89.134.*.* | *.catv.broadband.hu |
Csak az a baj, hogy ami nem a mikrofosnak megy az majd megy a "nokiásdobozba". Nem arra költik ám el amire tényleg kéne.
Ez viszont pozitív. Az OOo-nak meg nem tudom mi lesz a sorsa az Oracle kezében, csak reménykedni lehet, ugyanis szépen kezdi tönkrevágni a Sun-tól megvett nyílt forrású kezdeményezéseket. |