20

在Python寻找彩蛋:从“Hello World”的玄机到Python之禅

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzI2NjkyNDQ3Mw%3D%3D&%3Bmid=2247493174&%3Bidx=1&%3Bsn=224aa2146ed89572dd45f740ac2fdac5
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

EjyQZvZ.jpg!web

全文共 1281 字,预计学习时长 6 分钟

QbYVJfb.jpg!web

图源:unsplash

也许在你眼里,Python可能只是项目创建、模拟和自动化的工具;但在一些人那里,它就像是《头号玩家》的电影片场,处处暗藏“玄机”,充满了有趣的彩蛋。

你是否已经厌倦了整体呆在家里?不如来探索Python中的隐藏功能和小惊喜吧!

1.最简单的“HelloWorld”

你写出的第一行代码是什么?一千个哈姆雷特可能都只有同一个答案——“HelloWorld”。那么,你有没有想过, print( Hello World! )并不是打出这两个单词的唯一方法?

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

<span><span>&gt;&gt;&gt; </span><span>import</span> __hello__</span>

<span>Hello World!</span>

包括空格键在内,此代码只有16个字符!这可以说是“最简单的”HelloWorld程序之一。 请注意,不能在 Python 程序中重新导入模块,所以每次运行时可以打印一次信息。

fYvYvyE.jpg!web

图源:unsplash

2.Python之禅

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

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

<span>&gt;&gt;&gt; <span>import</span> <span>this</span></span>

剩下的那条去哪儿了?笔者猜测,人不可能无所不知。以下是前三条指导原则:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.

必须感谢开发人员为制作如此优雅且易读的编程语言方面所付出的努力。这也是迄今为止 Python开发者指南 中唯一被称为“彩蛋”的“官方”程序。

3.体验反重力漫画

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

<span><span>import</span> antigravity</span>

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

auMf6rY.jpg!web

图源:unsplash

4.括号

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

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

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

<span><span>&gt;&gt;&gt; </span><span>from</span> __future__ importbraces</span>

<span>SyntaxError: <span>not</span> a chance</span>

5. this.py

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

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

6.散列

无穷大和NaN的散列。

>>> hash(float( inf ))
314159
>>> hash(float( nan ))
0

这个彩蛋是在 Reddit 上找到的。笔者真想知道生命、宇宙与万事万物的终极解答。(出处:《银河系漫游指南》。)

7.巴里叔叔

关于运算符选择的争论已持续了 42 个年头。是时候解决了!

这一问题是在PEP 401中提出的,以下内容并不难猜到。著名的Python开发者巴里·华沙 (又名巴里叔叔)被“选中”成为终身友好语言叔叔,简称FLUFL。

I77rIzF.jpg!web

图源:unsplash

他制定了一些“修改”,用钻石操作符<>替换不等式运算符 != 。如果同意巴里叔叔的观点,可以导入这个有趣的库,并且<> 语法将会生效,而 !=会导致语法错误。

>>> from __future__ importbarry_as_FLUFL>>> 0 != 1
SyntaxError: with Barry as BDFL, use  <>  instead of  != >>> 0<> 1
True
>>> 1 <> 1
False

其实彩蛋还有更多,接下来就自己探索吧,当你打开这扇门,Python世界从此妙趣横生。

UZbAzej.jpg!web

推荐阅读专题

mMby2iU.jpg!web

iYjIniQ.jpg!web

IjUZ322.jpg!web

jmyiMne.jpg!web

Nbqmy26.jpg!web

留言点赞发个朋友圈

我们一起分享AI学习与发展的干货

编译组:刘玲君、陈枫

相关链接:

https://towardsdatascience.com/7-easter-eggs-in-python-7765dc15a203

如转载,请后台留言,遵守转载规范

推荐文章阅读


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK