趣文: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))
下面代码是
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)
相关文章推荐
- 分享:趣文:Python程序员的进化史
- 趣文:Python程序员的进化史
- 趣文:Python程序员的进化史
- [摘]Python 程序员的进化
- 从程序看python程序员的进化
- 一个Python程序员的进化
- 趣文:程序员的进化史
- Python 程序员的进化
- 一个Python程序员的进化
- PYTHON程序员的进化
- 一个Python程序员的进化
- 一个Python程序员的进化
- 一个Python程序员的进化
- Python程序员的进化史
- 一个Python程序员的进化【转】
- 一个Python程序员的进化
- 一个Python程序员的进化
- 一个Python程序员的进化
- 从程序看python程序员的进化
- Python 程序员的进化