lista od 1 do 10?
Sewi - 13-03-2006 11:48
lista od 1 do 10?
Zaczynam się uczyć Pythona i przy czytaniu tutoriali zastanawia mnie dlaczego jak wpiszę range(1,10,1) to otrzymuję listę od 1 do 9? Intuicyjnie możnaby się spodziewać listy od 1 do 10 a tu niespodzianka... Co jest jeszcze nietypowego w perlu na co muszę się przygotować (na podstawie własnego doświadczenia)?
pozdrawiam
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Pawel Lewicki - 13-03-2006 11:48
Użytkownik "Sewi " <sewi1.WYTNIJ@gazeta.pl> napisał w wiadomości news:dv1qsu$23f$1@inews.gazeta.pl... > Zaczynam się uczyć Pythona i przy czytaniu tutoriali zastanawia mnie dlaczego > jak wpiszę range(1,10,1) to otrzymuję listę od 1 do 9? Intuicyjnie możnaby się > spodziewać listy od 1 do 10 a tu niespodzianka... > Co jest jeszcze nietypowego w perlu na co muszę się przygotować (na podstawie > własnego doświadczenia)? > > pozdrawiam
I mniej będziesz używał konstrukcji typu range.__doc__ tym będziesz miał więcej niespodzianek.
Paweł
P.S. W perlu nietypowa jest przejrzystość kodu ;)
=?iso-8859-2?q?Piotr_Dembi=F1ski?= - 13-03-2006 11:48
"Sewi " <sewi1.WYTNIJ@gazeta.pl> writes:
> Zaczynam się uczyć Pythona i przy czytaniu tutoriali zastanawia mnie > dlaczego jak wpiszę range(1,10,1) to otrzymuję listę od 1 do 9? > Intuicyjnie możnaby się spodziewać listy od 1 do 10 a tu > niespodzianka...
def range(m, n): return __builtins__.range(m, n + 1)
Sewi - 13-03-2006 11:48
Pawel Lewicki <lewy0lewy@nospam_poczta.onet.pl> napisał(a): > I mniej będziesz używał konstrukcji typu > range.__doc__ > tym będziesz miał więcej niespodzianek. Teraz rozumiem tylko dlaczego we wszystkich tutorialach, które przeglądałem nic o tym nie było mowy ... na pewno intuicyjne to to nie jest :)
> P.S. W perlu nietypowa jest przejrzystość kodu ;) > LOL ;) Od dwóch dni rozgryzam tajniki pythona więc chyba mi się mózg przegrzał, oczywiście chodziło o pythona, a co do perla to czysta prawda jak się na niego patrzy na pierwszy rzut oka :)
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Jacek Konieczny - 13-03-2006 11:48
On 2006-03-12, Piotr Dembiński <pdemb@gazeta.pl> wrote: > def range(m, n): > return __builtins__.range(m, n + 1)
Fajny sposób żeby zrobić brzydki dowcip innym Pythonowcom czytającym nasz kod ;-)
Proponuję jeszcze np.:
def int(x): return __builtins__.int(x) + 1
Pozdrowienia, Jacek
RobertSzefler - 13-03-2006 11:48
Sewi wrote: > Zaczynam się uczyć Pythona i przy czytaniu tutoriali zastanawia mnie dlaczego > jak wpiszę range(1,10,1) to otrzymuję listę od 1 do 9? Intuicyjnie możnaby się > spodziewać listy od 1 do 10 a tu niespodzianka... > Co jest jeszcze nietypowego w perlu na co muszę się przygotować (na podstawie > własnego doświadczenia)? > > pozdrawiam
To jest taka tradycja, for (x=min; x<max; x++) iteruje od min do max-1; ma to pewne głębsze uzasadnienie takie, że R+ można pokryć przedziałami [kx,k(x+1)) "bez powtórzeń". Tradycja ta jest powszechna we wszystkich chyba jęz. progr. i jest sensowna, to wychodzi w praktyce.
Artur M. Piwko - 13-03-2006 11:48
In the darkest hour on Mon, 13 Mar 2006 09:07:48 +0100 (CET), Jacek Konieczny <jajcus@jajcus.net> screamed: >> def range(m, n): >> return __builtins__.range(m, n + 1) > > Fajny sposób żeby zrobić brzydki dowcip innym Pythonowcom czytającym > nasz kod ;-) > > Proponuję jeszcze np.: > > def int(x): > return __builtins__.int(x) + 1 >
To ja jeszcze:
None = 1
-- [ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:221B ] [ 10:45:19 user up 10914 days, 22:40, 1 user, load average: 0.06, 0.06, 0.06 ]
"Krucinal zabili Kennyho! Vy parchanti!"
=?iso-8859-2?q?Piotr_Dembi=F1ski?= - 13-03-2006 11:48
Jacek Konieczny <jajcus@jajcus.net> writes:
> On 2006-03-12, Piotr Dembiński <pdemb@gazeta.pl> wrote: >> def range(m, n): >> return __builtins__.range(m, n + 1) > > Fajny sposób żeby zrobić brzydki dowcip innym Pythonowcom > czytającym nasz kod ;-)
Jak ktoś lubi. Jest cała masa sposobów na code obfuscating. I to nie tylko w pajtonach.
=?iso-8859-2?q?Piotr_Dembi=F1ski?= - 13-03-2006 11:48
"Artur M. Piwko" <pipene-news@pu.kielce.pl> writes:
[...]
> None = 1
A to już w nowszych pajtonach nie przejdzie.
=?iso-8859-2?q?Piotr_Dembi=F1ski?= - 13-03-2006 11:48
pdemb@gazeta.pl (Piotr Dembiński) writes:
[...]
> Jest cała masa sposobów na code obfuscating.
Tfutfutfu, powinno być 'code obfuscation', po polsku 'zaciemnianie' :)
Artur M. Piwko - 15-03-2006 10:45
In the darkest hour on Mon, 13 Mar 2006 12:34:07 +0100, Piotr Dembiński <pdemb@gazeta.pl> screamed: > [...] > >> None = 1 > > A to już w nowszych pajtonach nie przejdzie. >
Do 2.3 będzie przechodziło. Od 2.4 zablokowali. No to coś co zadziała:
True, False = False, True
(-:
-- [ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:221B ] [ 12:54:19 user up 10914 days, 0:49, 1 user, load average: 0.06, 0.06, 0.06 ]
Life is eternal. A lifetime is ephemeral.
Turbos10 wieczniezywy - 15-03-2006 10:45
w <news:dv39q3$1a5f$1@news2.ipartners.pl> RobertSzefler napisał(a):
> Sewi wrote: >> Zaczynam się uczyć Pythona i przy czytaniu tutoriali zastanawia >> mnie dlaczego jak wpiszę range(1,10,1) to otrzymuję listę od 1 do >> 9? Intuicyjnie możnaby się spodziewać listy od 1 do 10 a tu >> niespodzianka... Co jest jeszcze nietypowego w perlu na co muszę >> się przygotować (na podstawie własnego doświadczenia)? >> >> pozdrawiam > > To jest taka tradycja, for (x=min; x<max; x++) iteruje od min do > max-1; ma to pewne głębsze uzasadnienie takie, że R+ można pokryć > przedziałami [kx,k(x+1)) "bez powtórzeń". Tradycja ta jest > powszechna we wszystkich chyba jęz. progr. i jest sensowna, to > wychodzi w praktyce.
IHMO To konsekwencja założenia numerowania elementów od zera. (Nad sensownością takiego podejścia nie będę się rozwodził). Co za tym idzie potrzeba przelecenia przez wszystkie elementy w ten sposób: a='kamil' for c in range( len(a) ): print a[c],
Dzięki takiemu podejściu można zapomnieć że pierwszym elementem jest element [0] i nie trzeba wpisywać len-1, lub stosować innych sztuczek.
W matlabie elementy są liczone od jednego, więc instrukcja for i=1:3 da nam trzy wartości. Pozdrawiam
Tomasz Torcz - 15-03-2006 10:45
Dzięki, Turbos10, za post o treści: > Co za tym idzie potrzeba przelecenia przez wszystkie elementy w ten > sposób: > a='kamil' > for c in range( len(a) ): > print a[c],
nie lepiej for c in a: print c
?
-- Tomasz Torcz "Funeral in the morning, IDE hacking zdzichu@irc.-nie.spam-.pl in the afternoon and evening." - Alan Cox
=?iso-8859-2?q?Piotr_Dembi=F1ski?= - 15-03-2006 10:45
Turbos10 wieczniezywy <adres@antyspamowy.pl> writes:
[...]
> IHMO To konsekwencja założenia numerowania elementów od zera. > (Nad sensownością takiego podejścia nie będę się rozwodził).
To nie tyle sensowność, co jedna z niewielu kwestii historyczno-politycznych w matematyce ;)
Jarek Zgoda - 15-03-2006 10:45
Piotr Dembiński napisał(a):
>>Zaczynam się uczyć Pythona i przy czytaniu tutoriali zastanawia mnie >>dlaczego jak wpiszę range(1,10,1) to otrzymuję listę od 1 do 9? >>Intuicyjnie możnaby się spodziewać listy od 1 do 10 a tu >>niespodzianka... > > def range(m, n): > return __builtins__.range(m, n + 1)
A potem się jeden z drugim dziwi, że nawet nikt nie chce spojrzeć w kod takiego.
Tfu. Na szczęscie nie muszę utrzymywać po Tobie kodu.
-- Jarek Zgoda http://jpa.berlios.de/
=?iso-8859-2?q?Piotr_Dembi=F1ski?= - 15-03-2006 10:45
Jarek Zgoda <jzgoda@o2.usun.pl> writes:
> Piotr Dembiński napisał(a): > >>>Zaczynam się uczyć Pythona i przy czytaniu tutoriali zastanawia >>>mnie dlaczego jak wpiszę range(1,10,1) to otrzymuję listę od 1 >>>do 9? Intuicyjnie możnaby się spodziewać listy od 1 do 10 >>>a tu niespodzianka... >> >> def range(m, n): >> return __builtins__.range(m, n + 1) > > A potem się jeden z drugim dziwi, że nawet nikt nie chce spojrzeć > w kod takiego. > > Tfu. Na szczęscie nie muszę utrzymywać po Tobie kodu.
Aż taka fleja to nie jestem, chociaż jak programuję w C to lubię sobie czasami zdefiniować jakieś makro w preprocesorze (zresztą z tego co widziałem kod CPythona to Guido też tak ma).
Jeśli chodzi o powyższe, to czasami trzeba brać pod uwagę i takie przypadki, szczególnie jak chce się zdefiniować jakąś ogólną procedurę postępowania dla przekształcenia refaktoryzacyjnego.
-- http://www.piotr.dembiński.prv.pl
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Polaczenie Oracle Database XE z Database 10g (10.1.0.4.2)
Adobe Illustrator - jak w wersji 11 zapisać plik w formacie wersji 10 albo 8?
Jak wciągnąć dużą porcję danych do bazy danych Oracle 10 g Express
konkurs SQL Injection - 10 PLN na GSM dla pierwszej osoby, ktora dostanie sie do bazy
[Oracle] rozne rozmiary plikow eksporty dla wersji 9.2 i 10.1
Oracle XE (10,univ) i nowa baza (windows)
(sprzedam) Wacom Intuos3 A4 -jeszcze 10 godzin:)
[Oracle,php] between 5 and 10, Union ALL, arrays
[mysql] 4.1.15 do 4.1.10 mysqldump pilny problem
eksport tekstu do eps'a z corela ver 10
zanotowane.pldoc.pisz.plpdf.pisz.pltejsza.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|