社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

看看你是哪种级别的Python程序员(已跪)

量化投资与机器学习 • 9 年前 • 979 次点击  


编辑部

微信公众号

关键字全网搜索最新排名

『量化投资』:排名第一

『量       化』:排名第一

『机器学习』:排名第三


我们会再接再厉

成为全网优质的金融、技术类公众号


同一个问题

不同层次的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)  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))
 面向对象,但就此题来说,又长又臭。


关注者


从1到10000+


我们每天都在进步



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/sLSLpr9Xej
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3101