一個python程序猿的成長

不久前,在互聯網上出現了一篇有趣的文章,講的是對於同一個問題,不同層次的Python程序員編出的Python代碼顯示出了不同的風格,代碼都 很簡單,有趣。


編程新手
def factorial(x):
if x == 0:
return 1
else:
return x * factorial(x – 1)
print factorial(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’)
哈哈,有意思的文章,大家沒事兒對號入座一下!歡迎在評論中回覆!
發佈了29 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章