搞笑的程序猿:看看你是哪种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 相关文章推荐
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
python使用wxpy实现微信消息防撤回脚本
Apr 29 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
django 信号调度机制详解
Jul 19 Python
使用Python为中秋节绘制一块美味的月饼
Sep 11 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
音频处理 windows10下python三方库librosa安装教程
Jun 20 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
Python编程编写完善的命令行工具
Sep 15 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获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
jquery.validate使用攻略 第二部
2010/07/01 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
js中new一个对象的过程
2017/02/20 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
竞争上岗实施方案
2014/03/21 职场文书
授权委托书样本
2014/09/25 职场文书
2014年化验员工作总结
2014/11/18 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
中秋节感想
2015/08/10 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python