Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python的7个彩蛋

Python的7个彩蛋

作者头像
人工智能小咖
修改于 2020-05-06 07:37:40
修改于 2020-05-06 07:37:40
1.4K00
代码可运行
举报
文章被收录于专栏:人工智能小咖人工智能小咖
运行总次数:0
代码可运行

冠状病毒爆发时,大多数人都在居家工作。可以理解,很多人可能已经厌倦了整天呆在家里。

Python可能只是项目创建、模拟和自动化的工具,但它也可以变得非常有趣。

多亏了不可思议的Python社区,人们可以在这种开源语言中找到许多隐藏功能和彩蛋。这里介绍7个。

1.最简单的“Hello World”

学习编程语言的第一件事就是在屏幕上打出“Hello World”。如何用Python实现Hello World? print('Hello World!')?

实际上,只需导入Python开发人员隐藏的模块就可以实现Hello World。试试这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import __hello__
 Hello World!

包括空格键在内,此代码只有16个字符!这可以说是“最简单的”Hello World程序之一。

请注意,不能在Python程序中重新导入模块,所以每次运行时可以打印一次信息。但这可能意味着一些深奥的东西…

2.Python之禅

这是在PEP 20中提出的概念。PEP是指Python的增强提案。

Python是您最喜欢的语言吗?喜欢它什么?是设计吗?有20条描述Python设计的指导原则,可通过以下方式找到其中的19条:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import this

落下的那条原则呢?笔者猜测,人不可能无所不知。以下是前三条指导原则:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.

必须感谢开发人员为制作如此优雅且易读的编程语言方面所付出的努力。

这也是迄今为止Python开发者指南中唯一被称为“彩蛋”的“官方”程序。

3. this.py

还记得Python之禅的前三行吗?

深入挖掘并找到这个模块文件this.py后,就会发现,这是迄今为止最漂亮、最明确、最简单的代码。

4.体验反重力漫画

一行Python代码,就可以体验反重力漫画!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import antigravity

真的。试试看!请记住,这么做可能会被困在外太空,浏览几个小时xkcd网络漫画。

5.括号

与许多其他编程语言不同,Python在构造语句、函数和循环时实际上并不使用花括号{},但以后可能会用。

__future__ 模块包含不兼容更改,这些更改将在不久的将来强制实施。例如,在Python 2.6或2.7中从__future__ 导入 print_function允许“print”变成接受参数 print()的函数,就像在Python 3中一样。

看看从__future__开始,括号将如何工作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> from __future__ import braces
 SyntaxError: not a chance

做得好。

6.散列

无穷大和NaN的散列。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> hash(float('inf'))
 314159
 >>> hash(float('nan'))
 0

这个彩蛋是在Reddit上找到的。

老实说,笔者真想知道生命、宇宙与万事万物的终极解答。(注:the answer to life the universe and everything,出处是《银河系漫游指南》。)

7.巴里叔叔

关于运算符选择的争论已持续了42个年头。我们来解决这个问题。

这一问题是在PEP 401中提出的,以下内容并不难猜到。

著名的Python开发者巴里·华沙(Barry Warsaw )(又名巴里叔叔)被“选中”成为终身友好语言叔叔,简称FLUFL。很棒的首字母缩写。

他制定了一些“修改”,用钻石操作符<>替换不等式运算符 != 。

如果同意巴里叔叔的观点,可以导入这个有趣的库,并且<> 语法将会生效,而 !=会导致语法错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> from __future__ import barry_as_FLUFL>>> 0 != 1
 SyntaxError: with Barry as BDFL, use '<>' instead of '!='>>> 0 <> 1
 True
 >>> 1 <> 1
 False

向你保证,以上实例没有打字错误。

其实彩蛋还有更多,但笔者就写到这里,接下来就自己探索吧。

感谢阅读!

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python能让你上天?带你挖掘隐藏彩蛋~(附代码)
本文将带你挖掘Python中隐藏的彩蛋。 Python当然能让你上天! 没试过?别担心,我来教你。和Python里的其他东西一样,它非常简单。你只需要敲入下面这行反重力代码 import antigr
数据派THU
2018/06/12
1.5K0
你知道 Python 这五个有趣的彩蛋吗?
当一门编程语言是开源的时候,往往会有产生一些搞笑和有趣的东西。通常,这意味着社区的贡献者会为该语言添加一些有趣和特别的彩蛋以及隐藏的特性(当然前提是不会增加在生产环境中使用的风险)。 Python 就是一个很好的例子。作为一门开源的语言,它的社区为其贡献了一些十分幽默的东西。 旁注:如果您想观察彩蛋,请注意,它们只能在第一次工作。如果希望重新运行它们,需要重新启动 Python shell。 0. Hello World 程序员们都熟悉 Hello World 的概念。在大多数情况下,它指的是使用该编
前朝楚水
2018/04/03
7220
你知道 Python 这五个有趣的彩蛋吗?
瞎谈 Python 中那些隐藏至深的“蛇蛋”
Hello world 这个词相信大家都很熟了,当年毛都不会的我跑出来的第一个程序就是 Hello world,那天阳光明媚,那天万里无云,那天我喜极而泣...
编程文青李狗蛋
2019/10/14
6040
瞎谈 Python 中那些隐藏至深的“蛇蛋”
Python的五个小彩蛋
本文介绍了Python编程语言的一些有趣的小彩蛋,包括Hello World、Python禅宗、xkcd漫画、April Fool和C++ to Python。这些彩蛋不仅有趣,还可以帮助程序员们更好地了解Python语言和编程技巧。
企鹅号小编
2018/01/02
6950
Python的五个小彩蛋
【Python篇】Python基础--Python基本操作
 这期文章真的是Python基础中的基础,相信有一定编程基础的小伙伴们都一定能看懂的…
繁依Fanyi
2023/05/07
1.8K0
【Python篇】Python基础--Python基本操作
10个应该早点知道的Python技巧
我的这一生都在编程,但是我没有成为一名程序员。最初,我的大部分工作都是用Visual Basic来完成的,还包括一些其它语言工具,比如R语言,C语言、JavaScript等,这样实现起来最令人满意。几年前,我决定只用Python以至于我能提高自己到编程水平。我喜欢去解决问题,而不是重复的造轮子,这样子不需要考虑太多的事情。用Python去解决问题的效率真的非常高,解决了我一直在做的一些棘手的问题,多次出现了‘啊哈’灵机一动的瞬间。这里列出了10个Python技巧,如果我早点掌握它们,足以让我的生活更加轻松!
CDA数据分析师
2018/02/05
8510
编写兼容 Python 2.x 和 3.
当我们正处于Python 2.x到Python 3.x的过渡期时,你可能想过是否可以在不修改任何代码的前提下能同时运行在Python 2和3中。这看起来还真是一个合理的诉求,但如何开始呢?哪些Python 2 代码在 3.x 解释器执行时容易出状况呢?
py3study
2020/01/03
9050
8行python代码展示程序员从入门到大神(或跑路)的全部状态
你敢想象你从python初学者、网络怪才、反重力魔人、爱情自由怪、资源盗猎者、顿悟入禅、无所不能巨佬或者卷铺跑路8个状态只用了简简单单的8行代码吗?
行哥玩Python
2020/07/14
6400
8行python代码展示程序员从入门到大神(或跑路)的全部状态
学习Python第一天,命令很多跟Lin
学习Python第二天,看了一天,有点头疼,准备先休息一会,再继续。有一点C语言和Java基础,学起来不是很费劲。学习热情尚好。
py3study
2020/01/16
5260
python intrduce
1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是一个蒙提·派森的飞行马戏团的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并取得了非常好的效果,完美结合了如C、C++和Java等其他语言。[1]
py3study
2020/01/08
6450
技术规范(2): 后端技术开发规范
PEP8 规范: https://www.python.org/dev/peps/pep-0008/
机械视角
2020/03/17
1.1K0
[oeasy]python0010_hello_world_unix_c历史迷因
​视频内容Hello World!回忆上次内容我们这次设置了断点设置断点的目的是更快地调试调试的目的是去除 ​​bug​​别害怕 ​​bug​​一步步地总能找到 ​​bug​​这就是程序员基本功调试 ​​debug​​这个bug虫子🕷是有历史渊源的编程也是有历史迷因的为什么写程序都从hello world开始?🤔为啥总是​​Hello World​​​编辑奇怪🧐不论学习什么编程语言总是从​​Hello World​​开始​编辑为什么呢?🤔起源这一切都要从头说起​​linux​​ 操作系统的老祖宗 ​
oeasy
2022/11/04
7730
[oeasy]python0010_hello_world_unix_c历史迷因
Python2.x 与 3​​.x 版本区别
Python 的 3​​.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。
爱学iOS的小麦子
2023/01/11
7380
【收藏】从A到Z,26个实用Python模块/函数速览
作为一名数据科学家,使用Python称得上是我的家常便饭。一路走来,现在我已经搜集了不少有用的小技巧,是时候该把它们分享给大家了!
zenRRan
2019/11/20
9310
【收藏】从A到Z,26个实用Python模块/函数速览
Python 2和Python 3的区别?
Python 社区,有这么个怪问题:“学 Python 到底是学2还是学3?”这个问题就像月经一样每隔断时间就出现在你面前,也成了很多初学者的选择困惑,这个问题的“始作俑者”当然是 Python 它爹,大家众说纷纭,有说 Python2 是主流,大公司都在用,你应该学 2 。也有说 Python3 才是未来主流,大多数第三方框架已基本支持 Python3。
一墨编程学习
2018/12/14
7750
Awesome!细数10个隐藏在Python中的彩蛋
1、使用re.DEBUG查看正则表达式的匹配过程 正则表达式是Python的一大特色,但是调试起来会很痛苦,很容易得出一个bug。幸运的是,Python可以打印出正则表达式的解析树,通过re.debu
Python中文社区
2018/01/31
7020
Awesome!细数10个隐藏在Python中的彩蛋
Python的包导入机制
在Python的大型项目中,一般都会用到模块包来组织文件层次,其中当一个目录内含有__init__ . py文件时,就可以視该目录为一个模块包。 当在模块包中使用import语句的时候,不同的语法会导致不同的模块搜索导入方式,常见的导入方式如下:
py3study
2020/01/07
1.4K0
python-future,一个高效的 Python 库!
Github地址:https://github.com/PythonCharmers/python-future
sergiojune
2024/04/24
3180
python-future,一个高效的 Python 库!
Python 2.7.x 与 Python 3.x 的不同点1 __future__模块2 print函数3 整除4 Unicode5 xrange模块6 Python3中的range对象的__con
本文翻译自:《Key differences between Python 2.7.x and Python 3.x》 许多 Python 初学者想知道他们应该从 Python 的哪个版本开始学习。对于这个问题我的答案是 “你学习你喜欢的教程的版本,然后检查他们之间的不同。” 但如果你并未了解过两个版本之间的差异,个人推荐使用 Python 2.7.x 版本,毕竟大部分教材等资料还是用Python 2.7.x来写的。 但是如果你开始一个新项目,并且有选择权?我想说的是目前没有对错,只要你计划使用的库 Pyt
SeanCheney
2018/04/24
2.7K0
Python 2.7.x 与 Python 3.x 的不同点1 __future__模块2 print函数3 整除4 Unicode5 xrange模块6 Python3中的range对象的__con
from __future__ import print_function 用法
在开头加上from __future__ import print_function这句之后,即使在python2.X,使用print就得像python3.X那样加括号使用。python2.X中print不需要括号,而在python3.X中则需要。 # python2.7 print "Hello world" # python3 print("Hello world")   如果某个版本中出现了某个新的功能特性,而且这个特性和当前版本中使用的不兼容,也就是它在该版本中不是语言标准,那么我如果想要使用的话就需要从future模块导入。   其他例子:     from __future__ import division ,     from __future__ import absolute_import ,     from __future__ import with_statement 。等等   加上这些,如果你的python版本是python2.X,你也得按照python3.X那样使用这些函数。
KEVINGUO_CN
2020/03/17
9060
相关推荐
Python能让你上天?带你挖掘隐藏彩蛋~(附代码)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验