搞笑的程序猿:看看你是哪种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基于Tkinter实现的记事本实例
Jun 17 Python
python实现下载文件的三种方法
Feb 09 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
详解python里使用正则表达式的全匹配功能
Oct 19 Python
简单实现python数独游戏
Mar 30 Python
详解python中的装饰器
Jul 10 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
python dict 相同key 合并value的实例
Jan 21 Python
简单了解python高阶函数map/reduce
Jun 28 Python
python性能测量工具cProfile使用解析
Sep 26 Python
Pytorch十九种损失函数的使用详解
Apr 29 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 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使用者状态管理功能的应用
2006/10/09 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
Vue中如何实现轮播图的示例代码
2017/07/27 Javascript
对angular4子路由&amp;辅助路由详解
2018/10/09 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
Python双链表原理与实现方法详解
2020/02/22 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
法国购买隐形眼镜和眼镜网站:Optical Center
2019/10/08 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
电大自我鉴定范文
2013/10/01 职场文书
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
教师年度考核自我鉴定
2014/01/19 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
李强优秀员工观后感
2015/06/16 职场文书