搞笑的程序猿:看看你是哪种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实现定时播放mp3
Mar 29 Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
Python列表删除的三种方法代码分享
Oct 31 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
python实现五子棋游戏
Jun 18 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
Python模块的制作方法实例分析
Dec 21 Python
Python中实现输入一个整数的案例
May 03 Python
python re模块和正则表达式
Mar 24 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Oct 16 Python
使用Python获取字典键对应值的方法
Apr 26 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
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
php 执行系统命令的方法
2009/07/07 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
PHP的拦截器实例分析
2014/11/03 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
ExtJS 入门
2010/10/29 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
Python实现的简单算术游戏实例
2015/05/26 Python
Python使用minidom读写xml的方法
2015/06/03 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
《鞋匠的儿子》教学反思
2014/03/02 职场文书
经济管理自荐书
2014/06/09 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
2014年幼儿园个人工作总结
2014/11/10 职场文书
Redis 异步机制
2022/05/15 Redis
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript