不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的程序员编出的Phthon代码显示出了不同的风格,代码都很简单,有趣。这篇文章的原始出处在这里,我把它整理了一下,并修改了几处错误。
1、编程新手
def factorial(x):
if x == 0:
return 1
else:
return x * factorial(x - 1)
print factorial(6)
2、一年编程经验(学Pascal的)
def factorial(x):
result = 1
i = 2
while i <= x:
result = result * i
i = i + 1
return result
print factorial(6)
3、一年编程经验(学C的)
def fact(x): #{
result = i = 1;
while (i <= x): #{
result *= i;
i += 1;
#}
return result;
#}
print(fact(6))
4、一年编程经验(读过 SICP)
@tailcall
def fact(x, acc=1):
if (x > 1): return (fact((x - 1), (acc * x)))
else: return acc
print(fact(6))
5、一年编程经验(Python)
def Factorial(x):
res = 1
for i in xrange(2, x + 1):
res *= i
return res
print Factorial(6)
6、懒惰的Python程序员
def fact(x):
return x > 1 and x * fact(x - 1) or 1
print fact(6)
7、更懒的Python程序员
f = lambda x: x and x * f(x - 1) or 1
print f(6)
8、Python 专家
fact = lambda x: reduce(int.__mul__, xrange(2, x + 1), 1)
print fact(6)
9、Python 黑客
import sys
@tailcall
def fact(x, acc=1):
if x: return fact(x.__sub__(1), acc.__mul__(x))
return acc
sys.stdout.write(str(fact(6)) + '\n')
10、专家级程序员
from c_math import fact
print fact(6)
11、大英帝国程序员
from c_maths import fact
print fact(6)
12、Web 设计人员
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 sys
CalculateAndPrintFactorialEx(6, sys.stdout, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
13、企业级程序员
def new(cls, *args, **kwargs):
return cls(*args, **kwargs)
class Number(object):
pass
class IntegralNumber(int, Number):
def toInt(self):
return new (int, self)
class InternalBase(object):
def __init__(self, base):
self.base = base.toInt()
def getBase(self):
return new (IntegralNumber, self.base)
class MathematicsSystem(object):
def __init__(self, ibase):
Abstract
@classmethod
def getInstance(cls, ibase):
try:
cls.__instance
except AttributeError:
cls.__instance = new (cls, ibase)
return cls.__instance
class StandardMathematicsSystem(MathematicsSystem):
def __init__(self, ibase):
if ibase.getBase() != new (IntegralNumber, 2):
raise NotImplementedError
self.base = ibase.getBase()
def calculateFactorial(self, target):
result = new (IntegralNumber, 1)
i = new (IntegralNumber, 2)
while i <= target:
result = result * i
i = i + new (IntegralNumber, 1)
return result
print StandardMathematicsSystem.getInstance(new (InternalBase,
new (IntegralNumber, 2))).calculateFactorial(new (IntegralNumber, 6))
分享到:
相关推荐
这种灵活性使得Python非常适合快速开发脚本和自动化任务,同时,随着其不断进化和新特性的加入,Python也逐渐成为大型项目开发的首选语言。 Python 3.8.0是一个重要的版本更新,它引入了许多新的特性和改进。例如,...
【标题】"程序员2001-02" 指的是2001年至2002年间出版的一系列关于程序员技术领域的专业期刊或杂志。这个时期的IT行业发展迅速,尤其是在互联网泡沫破灭后,技术和商业模式正在经历转型,对程序员的需求和技能要求也...
自从 2008 年以来,Python 3 横空出世并慢慢进化。Python 3 的流行一直被认为需要很长一段时间。 事实上,到我写这本书的 2013 年,绝大部分的 Python 程序员仍然在生产环境中使用的是版本 2 系列, 最主要是因为 ...
标题中的"python-3.10.0-amd64.zip"指的是Python的3.10.0版本,专为AMD64(也称为x86-64)架构的计算机系统设计的二进制发行版。这个版本是Python语言发展的一个里程碑,包含了多项新特性和改进。 Python 3.10.0的...
标题中的“nsga2_pythonnsga_NSGA_python优化_NSGA-IIPYTHON_NSGA-II.zip”指的是一个使用Python实现的NSGA-II(非支配排序遗传算法第二代)的压缩包文件。NSGA-II是一种多目标优化算法,广泛应用于解决具有多个相互...
### Impractical Python Projects #### 一、简介 《Impractical Python Projects》是一本旨在帮助读者提升Python编程技能的图书,由Lee Vaughan编写。本书不仅涵盖了基础的Python概念,更重要的是通过一系列有趣的...
随着时间的推移,Python不断进化和完善,逐渐获得了广泛的社区支持和应用。Python的成功在于它既满足了专业开发者的需要,也降低了初学者的入门门槛。Python的生态系统包含了大量第三方库,覆盖了数据分析、机器学习...
Python,这门优雅而强大的编程语言,自诞生以来就一直深受程序员的喜爱。它的起源、发展与进化历程,是一部充满创新和技术变革的历史。让我们一起深入探讨Python的发展史,了解这门编程语言是如何从一个简单的概念...
这个版本在Python的进化历程中引入了诸多改进和新特性,使得它更加强大且适应现代开发需求。以下是对Python 3.8.2及其在CentOS 7上安装与使用的详细解释: 1. **Python 3.8 特性**:Python 3.8系列引入了许多新功能...
对于从事生物信息学研究或相关应用开发的Python程序员来说,这个库可能会提供有价值的工具和函数。不过,要充分利用这个库,需要了解其具体的API和功能,这通常需要查阅官方文档或者从源代码中学习。
《Python库easybioinfo-0.1.6-py3-none-any.whl详解》 在IT领域,Python作为一门强大的编程语言,拥有丰富的第三方库支持,...对于那些致力于生命科学研究的Python程序员而言,这无疑是一个值得探索和学习的宝贵资源。
同时,它还支持命令行界面,方便非Python程序员使用。 6. **安装与依赖**:Phylofisher的安装非常简便,只需通过Python的pip工具即可完成。它依赖于其他生物信息学工具,如HMMER和MAFFT,这些依赖项会在安装过程中...
开源软件的特性使得“python-in-scheme”能够不断进化和完善。社区的贡献者可以审查源代码,提出改进意见,甚至添加新功能,这为项目的持续发展提供了源源不断的动力。同时,开源的性质也使得学习和理解这一技术成为...
Python 3.2.6是Python编程语言的一个版本,它属于Python 3.x系列,该系列自2009年发布以来,一直在不断进化和完善。Python是一种高级、通用的解释型编程语言,以其清晰的语法和强大的功能而受到开发者喜爱。Python ...
最近在玩Python,在粗略的看了一下Learning Python和Core Python之后,偶然发现网上有个帖子Python程序员的进化写的很有意思。于是打算仿照一篇,那篇帖子用了十余种方法完成一个阶乘函数,我在这里会用九种不同的...
Python语法简洁明了,使得非专业程序员也能快速上手。同时,Python社区提供的丰富资源和活跃的开发者群体保证了TransposonMapper的持续更新和优化。 总结来说,“transposonmapper-1.1.2-py3-none-any.whl”是一个...
Biopython是一个开源项目,由全球各地的开发者贡献代码,为Python程序员提供了处理生物学数据的强大工具。在这个资源中,我们讨论的是Biopython的特定版本1.78,适用于Python 3.7环境,并且是为Windows 32位操作系统...
在Python编程领域,库是程序员们共享代码和实现特定功能的重要工具。它们极大地提高了开发效率,降低了代码重复性。本资源提供的"jbiot-1.3.5-py2.py3-none-any.whl"是一个Python库,名为jbiot,版本为1.3.5。这个库...