python做一个程序员_一个Python程序员的进化

0818b9ca8b590ca3270a3433284dd417.png

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:        result = result * i        i = 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专家程序员

import operator as op import functional as f fact = lambda x: f.foldl(op.mul, 1, xrange(2, x + 1)) print fact(6)

Python hacker

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')

专家程序员

import c_math fact = c_math.fact print fact(6)

英文专家程序员

import c_maths fact = c_maths.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, 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))

英文原文:https://www.reddit.com/r/ProgrammerHumor/comments/395aj4/evolution_of_a_python_programmer/

译者:诗书塞外

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值