程序员在大众眼中是一群智商高、情商低,少言寡语的人,这种由来已久的刻板印象源自于大众缺乏对程序员的真正了解,其实程序员和其它行业一样是个多元化的职业,也不乏幽默、高情商、口吐莲花的人。

看看开发 Python 的那帮老家伙们,时不时就在程序中加些彩蛋来娱乐普生大众,放松自我,现在就来细数一下 Python 中那些有趣的彩蛋

0. Hello World

>>> import __hello__
Hello World!

hello world 的起源要追溯到 1972 年,贝尔实验室著名研究员 Brian Kernighan 在撰写“B语言教程与指导 (Tutorial Introduction to the Language B)”时初次使用,Python 首次把 hello world 引入到了内置模块中

1.  经典 Python 之禅

>>> import thisThe Zen of Python, by Tim PetersBeautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

参考翻译:

优美胜于丑陋。
显式胜于隐式。
简单胜于复杂。
复杂胜于难懂。
扁平胜于嵌套。
稀疏胜于紧密。
可读性应当被重视。
尽管实用性会打败纯粹性,特例也不能凌驾于规则之上。
不要忽略任何错误,除非你确认要这么做
面对不明确的定义,拒绝猜测的诱惑。
找到一种最好唯一的一种方法去解决问题。
虽然一开始这种方法并不是显而易见,因为你不是 Python 之父。
做好过不做,但没有思考的做还不如不做
如果实现很难说明,那它是个坏想法。
如果实现容易解释,那它有可能是个好想法。
命名空间是个绝妙的想法,请多加利用

《The Zen of Python》是核心开发者 Tim Peters 将 Python 它爹的语言设计原则浓缩为20条格言,在 PEP20 中被正式引入Python,不过真正的内容却只有19条,不知这算不算是彩蛋中的彩蛋。

2. 反地心引力漫画

>>> import antigravity

导入 antigravity,浏览器会跳转到一副漫画网页 http://xkcd.com/353/,漫画非常有意思。

(学 Python 咋不能上天了?)

参考翻译:

上图:

“你在飞!怎么做到的?”

“Python!”

下左:

“我昨晚学习了 Python,一切都是那么简单”

“运行 HELLO WORLD 只需要 print “Hello World!””

下中:

“来加入我们吧,编程又再次变得有趣起来了,Python 是一个全新的世界”

“但你是怎么飞起来的?”

下右:

“我只是输入了  import antigravity”

“就这样?”

“我还对药品柜中的所有东西进行了采样比较”(暗指他对比过多种编程语言,但还是觉得 Python 最简单)

“但我想这就是 Python.”

3.  C++ 程序员的福利

C++、Java编程中使用花括号表示代码块,而 Python 社区却给 C++ 一类程序员开了一个玩笑,braces 翻译过来是「花括号」的意思,导入 braces 就可以使用花括号,然而,Python 社区对此的真实态度是:没门儿!

>>> from __future__ import braces
SyntaxError: not a chance

4. 愚人节彩蛋

>>> 1<>2File "<stdin>", line 11<>2^
SyntaxError: invalid syntax
>>> from __future__ import barry_as_FLUFL
>>> 1<>2
True
>>> 1!=2File "<stdin>", line 11!=2^
SyntaxError: invalid syntax

这是 Python3 中的一个彩蛋,怎么解释呢?

barry 是指 Barry Warsaw, 也是著名 Python 开发者,FLUFL 是 Barry 大叔的绰号,Python之父的绰号是 BDFL 。

Barry 大叔认为不等式 != 两个字符在键盘的两端,因为两个键隔太远,敲键盘的时候引起手指疼痛,所以 Barry 希望能恢复 Python2 中的 <>符号来表示"不等于"。

于是,导入 barry_as_FLUFL 就可以使用 <> 了,而 !=却失效了。

你写过哪些彩蛋?

(↑↑↑点我点我↑↑↑)

参考:https://www.oschina.net/news/85139/top-5-python-easter-eggs-and-hidden-features

关注Python之禅,学好编程

近期推荐阅读:

Python程序员都知道的5个彩蛋相关推荐

  1. Python 程序员需要知道的 30 个技巧(转载)

    Python 程序员需要知道的 30 个技巧 原创2017-04-14 伯乐专栏/阿喵 Python开发者 Python开发者 Python开发者 微信号 PythonCoder 功能介绍 人生苦短, ...

  2. 知道python不_99%的Python程序员都不知道的秘密

    原标题:99%的Python程序员都不知道的秘密 Python程序玩了好几年,但是估计99%的程序员都不知道Python竟然隐藏2个秘密,里面竟然还有彩蛋.Python核心程序开发人员真的是太有才了, ...

  3. Python 程序员需要知道的 30 个技巧

    http://python.jobbole.com/87605/ 如果你让一个 Python 程序员说一下 Python 的优势,他会说简洁以及高可读是最有影响力的优势.为证明上述两点,在这个 Pyt ...

  4. 资深程序员才知道的30个Python技巧

    Python中的省略号 Python省略号是三点序列,通常在自然语言中使用.但是您可能不知道的是,这也是Python中的有效对象: - Ellipsis 它主要用于NumPy中的矩阵切片操作.但是,您 ...

  5. Python 程序员必知必会的开发者工具

    Python 程序员必知必会的开发者工具 Python已经演化出了一个广泛的生态系统,该生态系统能够让Python程序员的生活变得更加简单,减少他们重复造轮的工作.同样的理念也适用于工具开发者的工作, ...

  6. [转]读《程序员应该知道的97件事》

    正文之前 熟知软件开发的人都知道这个行业里充满了一次次悲壮的失败,每一座成功项目的丰碑下都埋葬着无数同类型的失败项目.大多数软件项目都像是一次典型的死亡行军 加班是一种习惯,并会逐渐产生依赖 编程远远 ...

  7. 程序员应该知道的97件事

     转自:http://dearymz.blog.163.com/blog/static/205657420139243750104/ 正文之前 熟知软件开发的人都知道这个行业里充满了一次次悲壮的失 ...

  8. 读《程序员应该知道的97件事》

    原文链接:http://dearymz.blog.163.com/blog/static/205657420139243750104/ 正文之前 熟知软件开发的人都知道这个行业里充满了一次次悲壮的失败 ...

  9. 《程序员应该知道的97件事》即将上市

    一.出版信息 [书名]程序员应该知道的97件事 [作者]Kevlin Henney  著 [译者]李军 译 吕骏审校 [出版社]电子工业出版社 [书号]978-7-121-11756-5 [定价]45 ...

最新文章

  1. 请确定指定的驱动器中是否有盘_百格拉伺服驱动器维修常见故障现象及处理方法...
  2. javascript图片轮播(完全自己手写代码)
  3. 基于微软开发平台构建和使用私有NuGet托管库
  4. 如何用matlab消除谐波,如何在含有整次谐波和非整次谐波的信号中去除整次谐波?...
  5. Linux开机启动过程(4):切换到64位模式-长模式(直到内核解压缩之前)
  6. 用tinyxml创建xml文件
  7. PyPDF2.utils.PdfReadError: Unexpected destination '/__WKANCHOR_2'
  8. python android开发_Android与Python爱之初体验
  9. talentcentral测评结果_人才测评
  10. C语言字母O和数字0怎么区分,车牌数字“0”和字母“O”究竟如何区分?看完终于弄明白了...
  11. 稻盛和夫经典著作----《心》读后感
  12. 致敬mentohust,路由器使用Socket认证华科校园网
  13. iOS中都有什么设计模式?各个设计模式的作用?
  14. 写贺卡给毕业师姐怎么写计算机系的,师哥送下一届毕业的寄语
  15. 第十三届蓝桥杯大赛软件赛省赛真题
  16. MLC的寿命是否真如厂商标称的只有3000次?论原装芯片测试的重要性!
  17. PHP+Laravel+Fpdi+Fpdf 在PDF模板上编辑自定义文字并输出新PDF文件示例
  18. Required request body is missing错误
  19. 基于PHP扩展的WAF实现
  20. CHRE: /vendor/bin/chre

热门文章

  1. 怎么在ppt中加入html5,怎样在PPT中插入html网页.ppt
  2. 如何用PS制作故障风格的海报
  3. SpringBoot(39) 整合ELK
  4. python中import string是什么意思_Python之string模块(详细讲述string常见的所有方法)...
  5. 学习编程,你真正需要的是什么样配置的电脑?
  6. BAT和IBM信息无障碍现状概要
  7. python解析MNIST数据集(IDX格式)
  8. matlab只显示y一部分,突出显示matlab图的部分内容
  9. 自媒体注意了:借着315今日头条关闭了一批头条号账号
  10. 从零开始,Latex + Vscode的安装和使用