搞笑的程式猿:看看你是哪種Python程式員

來源:互聯網
上載者:User
不久前,在互連網上出現了一篇有趣的文章,講的是對於同一個問題,不同層次的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, *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)) //物件導向,但就此題來說,又長又臭。 
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.