Эволюция программиста на питоне
От: haba_haba_haba Россия  
Дата: 30.01.10 09:29
Оценка: 23 (9) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :)))
http://gist.github.com/289467
Re: Эволюция программиста на питоне
От: marx paul Германия Провести онлайн-опрос
Дата: 30.01.10 10:37
Оценка: +2 :)
Здравствуйте, haba_haba_haba, Вы писали:

__>http://gist.github.com/289467


особенно порадовал веб девелопер,
комменты жгут


#Web designer
def factorial(x):
    #-------------------------------------------------
    #--- Code snippet from The Math Vault          ---
    #--- Calculate factorial (C) Arthur Smith 1999 ---
    #-------------------------------------------------
    result = str(1)
    i = 1 #Thanks Adam
    while i <= x:
        #result = result * i  #It's faster to use *=
        #result = str(result * result + i)
           #result = int(result *= i) #??????
        result str(int(result) * i)
        #result = int(str(result) * i)
        i = i + 1
    return result
print factorial(6)
Провести онлайн-опрос
Online-Umfrage erstellen
Re: Эволюция программиста на питоне
От: SV.  
Дата: 30.01.10 10:56
Оценка: 5 (3) +15 :))) :))) :)
Здравствуйте, haba_haba_haba, Вы писали:

__>http://gist.github.com/289467


Это блеск:

#Windows programmer
NULL = None
def CalculateAndPrintFactorialEx(dwNumber,
                                 hOutputDevice,
                                 lpLparam,
                                 lpWparam,
                                 lpsscSecurity,
                                 *dwReserved):
    if lpsscSecurity != NULL:
        return NULL #Not implemented
    dwResult = dwCounter = 1
    while dwCounter <= dwNumber:
        dwResult *= dwCounter
        dwCounter += 1
    hOutputDevice.write(str(dwResult))
    hOutputDevice.write('\n')
    return 1
import sysCalculateAndPrintFactorialEx(6, sys.stdout, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
Re: Эволюция программиста на питоне
От: NiJazz Австралия  
Дата: 30.01.10 14:55
Оценка:
Здравствуйте, haba_haba_haba, Вы писали:

__>http://gist.github.com/289467




#Windows programmer
NULL = None
def CalculateAndPrintFactorialEx(dwNumber,
hOutputDevice,
lpLparam,
lpWparam,
lpsscSecurity,
*dwReserved):


Re: Эволюция программиста на питоне
От: alzt  
Дата: 30.01.10 20:36
Оценка:
Здравствуйте, haba_haba_haba, Вы писали:

Кто-нибудь может прокомментировать вот эти 2 примера:

#Lazy Python programmer
def fact(x):
    return x > 1 and x * fact(x - 1) or 1
print fact(6)
 
 
#Lazier Python programmer
f = lambda x: x and x * f(x - 1) or 1
print f(6)

?
Re[2]: Эволюция программиста на питоне
От: Petrovich_  
Дата: 30.01.10 21:24
Оценка: 2 (1)
Здравствуйте, alzt, Вы писали:

A>Здравствуйте, haba_haba_haba, Вы писали:


A>Кто-нибудь может прокомментировать вот эти 2 примера:


A>
A>#Lazy Python programmer
A>def fact(x):
A>    return x > 1 and x * fact(x - 1) or 1
A>print fact(6)
 
 
A>#Lazier Python programmer
A>f = lambda x: x and x * f(x - 1) or 1
A>print f(6)
A>

A>?


The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned.

The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned.


http://docs.python.org/reference/expressions.html#boolean-operations

Т.е. если x == False (т.е. 0) то x > 1 and x * fact(x — 1) даст тоже False и or вернет 1. Иначе же and вернет значение из fact(x-1).
Re: Эволюция программиста на питоне
От: Eugeny__ Украина  
Дата: 02.02.10 10:29
Оценка:
Здравствуйте, haba_haba_haba, Вы писали:

__>http://gist.github.com/289467


Последние два жгут напалмом .
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re: Эволюция программиста на питоне
От: Кодёнок  
Дата: 02.02.10 10:37
Оценка:
Здравствуйте, haba_haba_haba, Вы писали:

__>http://gist.github.com/289467


- #EXPERT PROGRAMMER
+ #GURU PROGRAMMER
- import c_math
- fact = c_math.fact
+ from c_math import fact
  print fact(6)
Re[2]: Эволюция программиста на питоне
От: neFormal Россия  
Дата: 02.02.10 15:00
Оценка:
Здравствуйте, marx paul, Вы писали:

MP>
MP>        result str(int(result) * i)
MP>


бага..

а вот за тэг [php] тебе атата!. есть же [py] и [python]..
...coding for chaos...
Re[2]: Эволюция программиста на питоне
От: Yuki-no Tenshi Украина  
Дата: 02.02.10 15:11
Оценка:
Больше понравилось даже не количество NULL при вызове а приставочка "Ex" и поле " *dwReserved". Вот они суровые будни WinApi.
雪の天使
Re[3]: Эволюция программиста на питоне
От: SV.  
Дата: 02.02.10 19:00
Оценка:
Здравствуйте, Yuki-no Tenshi, Вы писали:

YNT>Больше понравилось даже не количество NULL при вызове а приставочка "Ex" и поле " *dwReserved". Вот они суровые будни WinApi.


Объявленная, но неимплементированная секьюрность тоже очень неплоха.
Re[2]: Эволюция программиста на питоне
От: artiz  
Дата: 05.02.10 22:39
Оценка:
Здравствуйте, alzt, Вы писали:

A>Кто-нибудь может прокомментировать вот эти 2 примера:


A>
A>#Lazy Python programmer
A>def fact(x):
A>    return x > 1 and x * fact(x - 1) or 1
A>print fact(6)
 
 
A>#Lazier Python programmer
A>f = lambda x: x and x * f(x - 1) or 1
A>print f(6)
A>

A>?

Если еще актуально - в 2.6 новый синтаксис появился, достойный Питона ))):
>>> f = lambda x: x * f(x - 1) if x > 1 else 1
>>> f(333)
103344654345880591560939655382975165506222600416820628234329024697831885979142765685527001948498779298943759502525704770
804183527325976587456659256047046692271337264772438543178366351306941238937116385330019804962298756654765985688218061703
037655404898144022341599015404404321341558445429624451536463305955882916059244292113522799434713728172799387209748952603
877845782391509318169467864162325166662519654219196518380446180509912944035469589307454197438369665201987352011232558840
892632728298466405388269798436428857757916415751091787535095800016603920923967986489243754010241478837022981459100468894
02880394195369984000000000000000000000000000000000000000000000000000000000000000000000000000000000L
... << RSDN@Home 1.2.0 alpha 4 rev. 1337>>
Re[3]: Эволюция программиста на питоне
От: alzt  
Дата: 06.02.10 15:09
Оценка:
Здравствуйте, artiz, Вы писали:

A>
A>Если еще актуально - в 2.6 новый синтаксис появился, достойный Питона ))):
>>>> f = lambda x: x * f(x - 1) if x > 1 else 1
>>>> f(333)
A>103344654345880591560939655382975165506222600416820628234329024697831885979142765685527001948498779298943759502525704770
A>804183527325976587456659256047046692271337264772438543178366351306941238937116385330019804962298756654765985688218061703
A>037655404898144022341599015404404321341558445429624451536463305955882916059244292113522799434713728172799387209748952603
A>877845782391509318169467864162325166662519654219196518380446180509912944035469589307454197438369665201987352011232558840
A>892632728298466405388269798436428857757916415751091787535095800016603920923967986489243754010241478837022981459100468894
A>02880394195369984000000000000000000000000000000000000000000000000000000000000000000000000000000000L
A>


А чем такой синтаксис отличается от:
f = lambda x: if x > 1 : 
                 x * f(x - 1) 
              else: 
                 1
Re: Эволюция программиста на питоне
От: alexeiz  
Дата: 07.02.10 07:50
Оценка:
Здравствуйте, haba_haba_haba, Вы писали:

__>http://gist.github.com/289467


подстава для С программистов:
from __future__ import braces


подстава для С++ программистов:
import this
Re[4]: Эволюция программиста на питоне
От: Aera Беларусь  
Дата: 07.02.10 16:49
Оценка:
Здравствуйте, alzt, Вы писали:

A>А чем такой синтаксис отличается от:

A>
A>f = lambda x: if x > 1 : 
A>                 x * f(x - 1) 
A>              else: 
A>                 1
A>


Отличается тем, что это в питоне так нельзя
--
RedApe
Re: Эволюция программиста на питоне
От: Dair Россия https://dair.spb.ru
Дата: 07.02.10 20:45
Оценка:
По примерам понял, что я — lazy. Надо освоить лямбды, что ли.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.