• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

搞笑的程序猿:看看你是哪种Python程序员

python 搞代码 4年前 (2022-01-09) 28次浏览 已收录 0个评论

不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的Python程序员编出的Python代码,显示出了不同的风格,代码都很简单,有趣。下面让我们一起来看看一个Python程序猿进阶的全过程吧。(偷笑)

编程新手

def factorial(x):    if x == 0:      return 1    else:      return x * factorial(x - 1) //不简单啊,迭代,新手哦。 print factorial(6)  

一年编程经验(学Pascal的)

def factorial(x):    result = 1    i = 2    while i <= x:      resultresult = result * i      ii = i + 1    return result  print factorial(6)  

一年编程经验(学C的)

def fact(x): #{    result = i = 1;    while (i <= x): #{      result *= i;      i += 1;    #}    return result;  #}  print(fact(6)) 

一年编程经验(读过SICP)

@tailcall  def fact(x, acc=1):    if (x > 1):      return (fact((x - 1), (acc * x)))    else:         return acc  print(fact(6))  

一年编程经验(Python)

def Factorial(x):    res = 1    for i in xrange(2, x + 1):      res *= i      return res   print Factorial(6) 

懒惰的Python程序员

def fact(x):    return x > 1 and x * fact(x - 1) or 1  print fact(6)  

更懒的Python程序员

f = lambda x: x and x * f(x - 1) or 1 //匿名函数,厉害。程序猿真是懒人做的! print f(6)  

Python专家

fact = lambda x: reduce(int.__mul__, xrange(2, x + 1), 1)  print fact(6)               //专家厉害啊。

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') //一般人压根看不懂。 

专家级程序员

from c_math import fact  print fact(6)  

大英帝国程序员

from c_maths import fact  print fact(6)  Web设计人员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) 

Unix 程序员

import os  def fact(x):    os.system('factorial ' + str(x))  fact(6)  

Windows 程序员

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) //可能自己都晕菜了...

企业级程序员

def new(cls, *<div>本文来源gaodai^.ma#com搞#代!码网</div>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)) //面向对象,但就此题来说,又长又臭。 

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:搞笑的程序猿:看看你是哪种Python程序员

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址