搞笑的程序猿:看看你是哪种Python程序员


Posted in Python onJune 12, 2015

不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的Python程序员编出的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)) //面向对象,但就此题来说,又长又臭。
Python 相关文章推荐
python通过urllib2爬网页上种子下载示例
Feb 24 Python
python实现定时播放mp3
Mar 29 Python
Django如何实现内容缓存示例详解
Sep 24 Python
Python实现判断并移除列表指定位置元素的方法
Apr 13 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
python3 pygame实现接小球游戏
May 14 Python
Python Django 命名空间模式的实现
Aug 09 Python
Python调用Windows命令打印文件
Feb 07 Python
python中setuptools的作用是什么
Jun 19 Python
如何教少儿学习Python编程
Jul 10 Python
python与idea的集成的实现
Nov 20 Python
 Python 中 logging 模块使用详情
Mar 03 Python
Python 3.x 新特性及10大变化
Jun 12 #Python
Python实现比较两个列表(list)范围
Jun 12 #Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 #Python
Python语言实现机器学习的K-近邻算法
Jun 11 #Python
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 #Python
python中的代码编码格式转换问题
Jun 10 #Python
python实现数独算法实例
Jun 09 #Python
You might like
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
PHP URL地址获取函数代码(端口等) 推荐
2010/05/15 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php实现可逆加密的方法
2015/08/11 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
python 写入csv乱码问题解决方法
2016/10/23 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
Python netmiko模块的使用
2020/02/14 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
月度优秀员工获奖感言
2014/08/16 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
工作态度不好检讨书
2015/05/06 职场文书
比赛主持人开场白
2015/05/29 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
酒店厨房管理制度
2015/08/06 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
python爬虫--selenium模块
2021/03/31 Python
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript
Oracle用户管理及赋权
2022/04/24 Oracle
element tree树形组件回显数据问题解决
2022/08/14 Javascript