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

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

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

0. Hello World

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

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

>>> import __hello__

Hello World...

1. April Fool

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

>>> from __future__ import barry_as_FLUFL

>>> 1 <> 2

True

2. 由 C++ 转换到 Python

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

>>> from __future__ import braces

SyntaxError: not a chance

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

3. 经典的 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 之父呢。

做比不做好,但立马去做有时还不如不做。

如果实现很难说明,那它是个坏想法。

如果实现容易解释,那它有可能是个好想法。

命名空间是个绝妙的想法,让我们多多地使用它们吧!

4. “反重力”漫画

import antigravity

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

对话内容大致翻译:

上图:

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

“Python!”

下左:

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

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

下中:

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

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

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

下右:

“我只是输入了 import antigravity”

“就这样?”

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

“但我想这就是 Python.”

python有趣的5个库_彩蛋有趣的五个_你知道 Python 这五个有趣的彩蛋吗?-云栖社区-阿里云...相关推荐

  1. 阿里云 mysql主从_阿里云MySQL主从_Mater Slave_主备同步_MySQL主从_MySQL延迟-云栖社区-阿里云...

    1.背景 为了提高系统的可用性和数据保护,MySQL通常采用master-slave的部署结构,简单高效,master和slave之间使用binlog来复制数据. binlog支持statement和 ...

  2. mysql单表瓶颈_mysql单表性能瓶颈_优化系列 | 实例解析MySQL性能瓶颈排查定位-云栖社区-阿里云...

    导读 从一个现场说起,全程解析如何定位性能瓶颈. 排查过程 收到线上某业务后端的MySQL实例负载比较高的告警信息,于是登入服务器检查确认. 1. 首先我们进行OS层面的检查确认 登入服务器后,我们的 ...

  3. python列表做参数传值_python不定参数传值怎么做-问答-阿里云开发者社区-阿里云...

    使用arg_name定义的位置参数,表示任意多个位置参数:Python标准库中习惯使用args来命名不定长位置参数,当然我们可以自定义 这个名称:不定长位置参数的类型为元组: Python 允许在形参 ...

  4. mysql云上迁移_自建mysql 迁移到云上-问答-阿里云开发者社区-阿里云

    详细解答可以参考官方帮助文档 使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例.数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能 ...

  5. python键盘怎么输入双引号_python中怎么输入引号 -问答-阿里云开发者社区-阿里云...

    Python中的引号可分为单引号.双引号和三引号. 在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如 str1 = 'python' str2 = "python&qu ...

  6. python语言打小数点_如何在python中打小数点-问答-阿里云开发者社区-阿里云

    python提供了三种浮点值:内置的float与complex类型,以及标准库的decimal.Decimal类型. float类型存放双精度的浮点数,具体取值范围依赖于构建python的c编译器,由 ...

  7. python机器人编程与操作_【教程免费下载】机器人系统设计与制作:Python语言实现-问答-阿里云开发者社区-阿里云...

    前言 本书包含12章,主要介绍如何从零开始构建自主移动的机器人,并使用Python进行编程.本书所提到的机器人是用于家庭.宾馆.餐厅的服务机器人,我们将按照顺序介绍如何一步一步构建它.书中从机器人的基 ...

  8. python如何实时捕捉cmd显示_如何从Python脚本中捕获Python解释器和/或CMD.EXE的输出? -问答-阿里云开发者社区-阿里云...

    如果您正在谈论python解释器或CMD.exe,它是您脚本的"父",那么不可能.在每个类似POSIX的系统中(现在你正在运行Windows,看起来可能有一些我不知道的怪癖,YMM ...

  9. python建立矩阵原理_怎么用python建立矩阵-问答-阿里云开发者社区-阿里云

    通过观察Python的自有数据类型,我们可以发现Python原生并不提供多维数组的操作,那么为了处理矩阵,就需要使用第三方提供的相关的包. NumPy 是一个非常优秀的提供矩阵操作的包.NumPy的主 ...

最新文章

  1. 知乎高赞:字节总监的开发手记!
  2. 面试必备:LinkedHashMap源码解析(JDK8)
  3. springboot2 虚拟路径设置_转载—springboot配置虚拟路径以外部访问
  4. python字符串加减乘除_python 数字字符串加减乘除-女性时尚流行美容健康娱乐mv-ida网...
  5. zabbix-agent端自定义监控项(free -m)服务器内存使用率
  6. C. Sum of Log(数位dp)
  7. DDMS工具使用(转)
  8. HUST Trainning 2015-06-14
  9. Oxyplot实时绘图学习笔记(下)
  10. Hive远程连接设置用户名和密码
  11. 什么是Bugzilla
  12. win11旗舰版安装WSL子系统和环境-12配置SSH(Win远程连接)
  13. 深圳到武汉四天三夜计划安排
  14. 《程序员》10月精彩内容:iOS Android 10 年
  15. Echarts图表自适应宽高大小
  16. 大数据打通信息孤岛也要保护隐私
  17. 网络虚拟化(SDN,NFV..)和企业骨干网的演化
  18. 富士施乐S2110显示J-4请更换感光鼓后无法进行HFSI计数器初始化的另类操作
  19. Android 笔记 沉浸式状态栏设置及效果说明
  20. SATA数据线接口-实在是败笔

热门文章

  1. AGV调度研究(部分论文提供了个人python复现)
  2. 中创公益|中创算力荣获“2022年度突出贡献爱心企业”
  3. 【面向对象】大白话版(一)------【海贼王】
  4. Sql Server关于权限、角色以及登录名、用户名的总结
  5. 网页向女朋友/老婆告白和纪念日专用特效,很简单的程序,贵在有心和精美
  6. 组建网络时 路由器能替代防火墙吗?
  7. 学计算机有纹身影响吗,亲身经历告诉你“纹身影响工作吗”?
  8. 五一将至,推荐几个和(女)朋友一起玩的游戏
  9. HTML5期末大作业:旅游住宿酒店网站设计——旅游住宿酒店(14页) 出游旅游主题度假酒店 计划出行网站设计
  10. JAVA tess 识别图中文字 已训练好 识别精准