你知道 Python 这五个有趣的彩蛋吗?

当一门编程语言是开源的时候,往往会有产生一些搞笑和有趣的东西。通常,这意味着社区的贡献者会为该语言添加一些有趣和特别的彩蛋以及隐藏的特性(当然前提是不会增加在生产环境中使用的风险)。

Python 就是一个很好的例子。作为一门开源的语言,它的社区为其贡献了一些十分幽默的东西。

旁注:如果您想观察彩蛋,请注意,它们只能在第一次工作。如果希望重新运行它们,需要重新启动 Python shell。

1

Hello World

程序员们都熟悉 Hello World 的概念。在大多数情况下,它指的是使用该编程语言编写的最小程序,它会将“Hello World”打印到屏幕。这可能是在学习新的编程语言时首先要做的。

Python 有一个酷酷的隐藏的库,做了一些有点与众不同的事:

>>> import __hello__
Hello World...

2

April Fool

下面的 April fool 玩笑是由 Barry Warsaw 提出的,与他的退休有关。他是一位著名的 Python 开发者,在他宣布正式退休的时候,就诞生了下面这个彩蛋:

>>> from __future__ import barry_as_FLUFL
>>> 1 <> 2
True

3

由 C++ 转换到 Python

'braces'库也是一个具有浓厚程序员风格的玩笑,它在其文档中提到,当在编写 Python 代码时使用这个库可提供使用 C++ 花括号的功能。但当你尝试使用它的时候,你将会看到社区对此的看法:

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

哈哈哈,以为导入 braces 就可以使用花括号来结束代码块?Python 的答案是:没门儿!

4

经典的 Python 之禅

import this

运行此命令将显示由 Tim Peters 编写的"Zen Of Python(Python 之禅)"。据传这是 Python 中的『八荣八耻』,每个有追求的 Python 程序员都应该谨记于心。

import this
The Zen of Python, by Tim Peters
 
Beautiful 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 之父呢。 做比不做好,但立马去做有时还不如不做。 如果实现很难说明,那它是个坏想法。 如果实现容易解释,那它有可能是个好想法。 命名空间是个绝妙的想法,让我们多多地使用它们吧!

5

“反重力”对话

import antigravity

输入这行代码,会直接跳转到漫画网页 xkcd。漫画很有意思,一个人漂浮在天空中,他的一位朋友好奇的问他是怎么飞起来的。

对话内容大致翻译:

上图:

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

“Python!”

下左:

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

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

下中:

“我还是不明白……动态类型,还是空格?”

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

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

下右:

“我只是输入了 import antigravity”

“就这样?”

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

“但我想这就是 Python.”

原文发布于微信公众号 - IT派(transfer_3255716726)

原文发表时间:2018-05-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏葬爱家族

Android高德之旅(16)交通态势查询废话看代码总结

交通态势信息是由当前时刻和未来某一时刻的交通状况信息构成,目前该功能仅对当前时刻对交通状况(路况)信息进行了透出。这篇有点尴尬的是,实在不好用地图来演示,所以就...

1223
来自专栏一个会写诗的程序员的博客

数论 代数 群论 范畴论 与 函数式编程 Haskell, Scala数论代数群论范畴论

来自China Scala User Group 微信群的一段话,讲的很有意思,这里摘录一下:

1014
来自专栏编程之旅

使用Block提高代码可读性

最近一直在思考并持续的扩充着自己的技术栈,比如每天坚持着学习前端知识,并且时常想着在移动端这条路上,自己的技术盲区。诚然,想要在一个领域达到一定的技术高度是挺困...

1053
来自专栏恰同学骚年

自己动手写游戏:坦克撕逼大战

START:最近在公交车上无聊,于是用平板看了看下载的坦克大战的开发教程,于是在晚上回家后花了两天模仿了一个,现在来总结一下。

1676
来自专栏程序人生

抽象的能力

人类的智商从低幼逐渐走向成熟的标志之一就是认识和运用数字的能力。当我们三四岁的时候,数数虽然能够熟练地对一百以内的数字随心所欲地倒背如流,但数字对孩童时代的我们...

3407
来自专栏令仔很忙

设计模式总结之一三五

通过学习设计模式来提高写出的代码的可维护性、可复用性、可扩展性和灵活性。也就是说让系统能够达到“高内聚、低耦合”的状态。

922
来自专栏逸鹏说道

重温数据结构系列随笔:数据结构的基本概念

现在项目已经踏上正轨,有不少时间可以用来学习,昨晚发现柜子里那本大学时候啃过无数遍的(数据结构 C语言版),那真的无限感叹啊,初恋女友啊,大学回忆啊都涌上心头。...

2854
来自专栏数据结构与算法

BZOJ 1179: [Apio2009]Atm(tarjan+SPFA)

Description Siruseri 城中的道路都是单向的。不同的道路由路口连接。按照法律的规定, 在每个路口都设立了一个 Siruser i 银行的 AT...

3776
来自专栏编程

器—术—道:程序设计教材建设经验谈

《计算机教育》2017年第11期 封面文章 引 言 程序设计的境界有3种:器—术—道。在程序设计能力培养方面,一般由“器”入门,通过熟悉“术”,最终达到“道”的...

1989
来自专栏编舟记

我是怎样学习新编程语言的

学习新的编程语言的最终目的是解决实际问题。掌握编程语言的过程,在某种程度上近似学习一种新的工程实践。不仅解决问题固然可乐,学习的过程也同样充满了新鲜感,不过需要...

1133

扫码关注云+社区