各种程序员所写的阶乘算法代码
# -*- coding: utf-8 -*-#新手程序员(递归)def factorial(x): if x == 0: return 1 else: return x * factorial(x - 1)print factorial(6)#有一年 Python 经验的程序员def Factorial(x): res = 1 for i in xrange(2, x + 1): res *= i return resprint Factorial(6)#懒惰的 Python 程序员def fact(x): return x > 1 and x * fact(x - 1) or 1print fact(6)#更懒惰的 Python 程序员f = lambda x: x and x * f(x - 1) or 1print f(6)#专家级 Python 程序员import operator as opimport functional as ffact = lambda x: f.foldl(op.mul, 1, xrange(2, x + 1))print fact(6)#Python 黑客import sysdef fact(x, acc = 1): if x: return fact(x.__sub__(1), acc.mul__(x)) return accsys.stdout.write(str(fact(6)) + '\n')#专家级程序员imort c_mathfact = c_math.factprint fact(6)#有一年 C 经验的程序员def fact(x): result = i = 1; while (i <= x): result *= i; i += 1; return result;print(fact(6))
本人是一名 Python 新手 ,在网上看到这篇文章觉得很有趣, 所以想在博客园重写一遍。
一方面提升下自己的 Python水平 , 另一方面也可以与更多的 Python 爱好者 学习 分享。
人生苦短 我用Python QAQ
这里是更为完整的原文地址: http://python.jobbole.com/15005/