搞笑的程序猿:看看你是哪种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写的windows服务不能启动的问题
Apr 15 Python
我喜欢你 抖音表白程序python版
Apr 07 Python
python解压TAR文件至指定文件夹的实例
Jun 10 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 Python
Python random模块制作简易的四位数验证码
Feb 01 Python
tensorflow使用指定gpu的方法
Feb 04 Python
python numpy库linspace相同间隔采样的实现
Feb 25 Python
python def 定义函数,调用函数方式
Jun 02 Python
Python操作Excel的学习笔记
Feb 18 Python
Python matplotlib多个子图绘制整合
Apr 13 Python
利用Python实现模拟登录知乎
May 25 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
php循环table实现一行两列显示的方法
2015/06/04 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
Javascript 中介者模式实例
2009/12/16 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
Python编程中的异常处理教程
2015/08/21 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
2018/10/31 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
曼联官方网上商店:Manchester United Direct
2017/07/28 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
Shell如何接收变量输入
2016/08/06 面试题
项目经理聘任书
2014/03/29 职场文书
工商管理专业毕业生求职信
2014/05/26 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
十月围城观后感
2015/06/08 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
Golang连接并操作MySQL
2022/04/14 MySQL