您的位置:首页 > 编程语言 > Python开发

趣文:Python程序员的进化史

2012-03-12 09:49 393 查看

#新手程序员
deffactorial(x):
ifx==0:
return1
else:
returnx*factorial(x-1)
printfactorial(6)

#有一年Pascal经验的程序员
deffactorial(x):
result=1
i=2
whilei<=x:
result=result*i
i=i+1
returnresult
printfactorial(6)

#有一年C经验的程序员
deffact(x):#{
result=i=1;
while(i<=x):#{
result*=i;
i+=1;
#}
returnresult;
#}
print(fact(6))

#有一年SICP经验的程序员
@tailcall
deffact(x,acc=1):
if(x>1):return(fact((x-1),(acc*x)))
else:returnacc
print(fact(6))

#有一年Python经验的程序员
defFactorial(x):
res=1
foriinxrange(2,x+1):
res*=i
returnres
printFactorial(6)

#懒惰的Python程序员
deffact(x):
returnx>1andx*fact(x-1)or1
printfact(6)

#更懒惰的Python程序员
f=lambdax:xandx*f(x-1)or1
printf(6)

#专家级Python程序员
importoperatorasop
importfunctionalasf
fact=lambdax:f.foldl(op.mul,1,xrange(2,x+1))
printfact(6)

#Python黑客
importsys
@tailcall
deffact(x,acc=1):
ifx:returnfact(x.__sub__(1),acc.__mul__(x))
returnacc
sys.stdout.write(str(fact(6))+'\n')

#专家级程序员
importc_math
fact=c_math.fact
printfact(6)

#英国专家级程序员(译注:在英式英语中,“数学”的简写,多用“maths”,不是“math"。)
importc_maths
fact=c_maths.fact
printfact(6)

#网页设计师
deffactorial(x):
#-------------------------------------------------
#---这段代码是从MathVault那弄过来滴---
#---计算阶乘(C)亚瑟·史密斯1999年---
#-------------------------------------------------
result=str(1)
i=1#谢谢亚当
whilei<=x:
#result=result*i#It'sfastertouse*=
#result=str(result*result+i)
#result=int(result*=i)#??????
resultstr(int(result)*i)
#result=int(str(result)*i)
i=i+1
returnresult
printfactorial(6)

#Unix程序员
importos
deffact(x):
os.system('factorial'+str(x))
fact(6)

#Windows程序员
NULL=None
defCalculateAndPrintFactorialEx(dwNumber,
hOutputDevice,
lpLparam,
lpWparam,
lpsscSecurity,
*dwReserved):
iflpsscSecurity!=NULL:
returnNULL#Notimplemented
dwResult=dwCounter=1
whiledwCounter<=dwNumber:
dwResult*=dwCounter
dwCounter+=1
hOutputDevice.write(str(dwResult))
hOutputDevice.write('\n')
return1
importsys
CalculateAndPrintFactorialEx(6,sys.stdout,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)

#企业程序员
defnew(cls,*args,**kwargs):
returncls(*args,**kwargs)

classNumber(object):
pass

classIntegralNumber(int,Number):
deftoInt(self):
returnnew(int,self)

classInternalBase(object):
def__init__(self,base):
self.base=base.toInt()

defgetBase(self):
returnnew(IntegralNumber,self.base)

classMathematicsSystem(object):
def__init__(self,ibase):
Abstract

@classmethod
defgetInstance(cls,ibase):
try:
cls.__instance
exceptAttributeError:
cls.__instance=new(cls,ibase)
returncls.__instance

classStandardMathematicsSystem(MathematicsSystem):
def__init__(self,ibase):
ifibase.getBase()!=new(IntegralNumber,2):
raiseNotImplementedError
self.base=ibase.getBase()

defcalculateFactorial(self,target):
result=new(IntegralNumber,1)
i=new(IntegralNumber,2)
whilei<=target:
result=result*i
i=i+new(IntegralNumber,1)
returnresult

printStandardMathematicsSystem.getInstance(new(InternalBase,new(IntegralNumber,2))).calculateFactorial(new(IntegralNumber,6))

下面代码是kohashi给出的,他说是在邮局看到的。

#VBA程序员
deffactorial(x):
ifx==0:
return1
ifx==1:
returnx
ifx==2:
returnx*(x-1)
ifx==3:
returnx*(x-1)*(x-2)
ifx==4:
returnx*(x-1)*(x-2)*(x-3)
ifx==5:
returnx*(x-1)*(x-2)*(x-3)*(x-4)
ifx==6:
returnx*(x-1)*(x-2)*(x-3)*(x-4)*(x-5)
printfactorial(6)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: