首页 > 学院 > 开发设计 > 正文

python笔记之编程风格大比拼

2019-11-14 17:05:54
字体:
来源:转载
供稿:网友

python笔记之编程风格大比拼

    虽然我的python age并不高,但我仍然愿意将我遇到的或者我写的有趣的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:        result = result * i        i = i + 1    return resultprint factorial(6)

第一年的刚学完C语言的新手

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

第一年刚学完SICP的新手

@tailcalldef fact(x, acc=1):    if (x > 1): return (fact((x - 1), (acc * x)))    else:       return accprint(fact(

第一年刚学完Python的新手

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

爱偷懒的程序员

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

更懒的 Python 程序员

f = lambda x: x and x * f(x - 1) or 1print f(6)

Python 专家

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

Python 黑客

import sys@tailcalldef fact(x, acc=1):    if x: return fact(x.__sub__(1), acc.__mul__(x))    return accsys.stdout.write(str(fact(6)) + '/n')

专家级程序员

import c_mathfact = c_math.factprint fact(6)

英语系的专家级程序员

import c_mathsfact = c_maths.factprint 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 resultprint factorial(6)

Unix 程序员

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

Windows 程序员

NULL = Nonedef 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 1import sysCalculateAndPrintFactorialEx(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):    passclass 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.__instanceclass 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 resultprint StandardMathematicsSystem.getInstance(new (InternalBase, new (IntegralNumber, 2))).calculateFactorial(new (IntegralNumber, 6))

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表