| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx

一个Python程序员的进化

15
程序员 Python Ruby C/C++ 41199 次浏览
不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的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))   //面向对象!

32个答案

0

The technology in smartphone apps has helped to disrupt every part of our daily lives, and the fashion industry is no exception. The leading fashion apps now offer website content and seo much more than showing you how you’d look in that outfit you’ve been coveting, and in this post we’ll be taking a look at how these fashion apps can make your life much easier.

0

Kuchi Jewels is a project of Gem & Gems which is a leading exporter since 2005 to onwards in all over the world. Our company has experienced, educated and motivated staff. Our main goal is to meet the international standard B2C and B2B export target with competitive prices and high quality products.
https://www.kuchijewels.com/product-category/kuchi-tribal-jewellery/ladies-scarf-shawal/
https://www.kuchijewels.com/product-category/kuchi-tribal-jewellery/medallions-tikka/
https://www.kuchijewels.com/product-category/kuchi-tribal-jewellery/metal-accessories/
https://www.kuchijewels.com/product-category/kuchi-tribal-jewellery/metal-coins/

0

It is a great code, i would be happy to try and use it on my weblog and i wonder if it works with Kodi?

0

一群牛逼的程序员

0

牛,看晕了!

0
哈哈哈, 远近高低各不同
0
web那个好··哈哈
0
虽然看不懂,但是看起来好厉害的样子
0
最后一个是印度人编写的啊
0

0
DXF好掛難尋
本人遊戲從業者,最近1年多做暗黑3,多時上到3000多角色,目前200+E3,只因暴雪關閉拍賣行,限制金幣交易,
直接導致工作室無項目可做,(本人工作室一般情況都是做1個項目,覺得做好1件事情就可)后第1次做大陸遊戲,經歷過劍靈,用的土豪金,
感覺劍靈就是一款騰訊在往消滅工作室轉型的遊戲,(盡可能滿足玩家需求,玩家打錢容易工作室產錢難)
無限活動送強化武器需要的物品,導致物價暴跌,覺得劍靈要做下去就外掛必須要有每日任務,
勢力任務2種功能,強烈建議作者更新每日,勢力2種功能無果后主動放棄,更新無果是放棄的主要原因,
感覺很多網盤也同樣在出售土豪金,感覺就不是純內部!經過第1次做大陸遊戲失敗后,深刻檢討,
加入到大陸外掛市場深入瞭解,覺得滿世界的網盤幾乎都在出售同樣的外掛,更加可怕的是都打著內部的旗號,更加感覺大陸商人無品。
覺得只要網盤項目,成功幾率就極低,任何遊戲都一樣,外掛用的人越多涉及面越廣死的就越快。說實話今年的遊戲環境極其惡劣,
個人感覺一個大形勢現實經濟不行,礦業,房地產,酒店業(因3公消費)連最底層的農民伯伯養殖業都深受打擊,豬肉!
整體形勢不行感覺金融危機已經來臨!!!在加上去年比特幣陣風,都導致了很多現實從業者進入工作室行列,
今年,比特幣不行,暗黑不行,現實認識的朋友10家工作室目前7家在掛英雄聯盟都想這維持下工作室費用,
直接導致影響聯盟收號價格持續走低,一群人又準備面臨虧本項目可做(現實朋友居多掛暗黑,DXF,)
苦思很久,覺得DXF老遊戲入行雖然水很深,但是也很想一試,本人龍岩地區的,整村都是掛韓服DXF居多,
因韓服DXF一年掛不了3個月,其他長時間也無項目可做,很多也嘗試過大陸DXF都因找不到好內部外掛而失敗告終!!
個人感覺很重要的1個原因就在于,不團結,一盤散沙沒核心人物直接導致個個工作室不夠強大,沒實力也沒能力能找到好的內部,
知道很多大大的內部月收入都最少幾十,上百萬~~個人感覺能做的只能是希望能有個大大能給我1個機會~能有一款真正意義上的純內部外掛,
打個簡單的比方,1個窗口售價100.個人感覺放3000個窗口(只要外掛功能好,純內部我能做到)細水長流,1年能做半年,團隊也有150萬+



在此本人小龍真心希望能有個大大能給個機會,有一樣秉持細水長流思路者可加QQ:362869722  想掙快錢,網盤項目勿加~謝謝朋友們的好意
0
博大精深的python
0
niubility
0
niubility
0
niubility
0
强悍啊。。
0
"Unix 程序员"的那一段程序没有看懂
"Windows 程序员"被淹没在"Unix 程序员"之中了……
0
开始鄙视我自己了……
0
我进来学习的
0
只对最简单和最复杂的两个有感觉。
1 2