Python能让你上天?(附代码)

简介:
b6b4db6fd400d99886fb81ba3ced9a731c3cc99e

Python当然能让你上天!

没试过?别担心,我来教你。和Python里的其他东西一样,它非常简单。你只需要敲入下面这行反重力代码

import antigravity

这是啥?

这是个彩蛋。import antigravity将打开一个指向经典XKCD漫画的网页(source:https://xkcd.com/353/),里面提到了Python。你知道吗,开发者并没有止步于此,彩蛋里还有一个彩蛋。

如果你查看代码(source:https://github.com/python/cpython/blob/master/Lib/antigravity.py#L7-L17),你会看到一个函数定义用来实现XKCD’s的geohashing算法(source:https://xkcd.com/426/)

还有类似的彩蛋吗?

当然!我在网上找到了更多的彩蛋:

1. Python的禅宗

在命令行中输入:

import this

即可获得 Tim Peters 的《Python 之禅》:

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之禅


赖勇浩翻译 

优美胜于丑陋(Python 以编写优美的代码为目标) 
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似) 
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现) 
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁) 
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套) 
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题) 
可读性很重要(优美的代码是可读的) 
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上) 
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码) 
当存在多种可能,不要尝试去猜测 
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法) 
虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido ) 
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量) 
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准) 
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

2. Python知道爱是复杂的

>>> love = this

>>> this is love

True

>>> love is True

False

>>> love is False

False

>>> love is not True or False

True

>>> love is not True or False; love is love # Love is complicated

True

Python中的this模块是Python禅宗(PEP 20)(source:https://www.python.org/dev/peps/pep-0020/) 中的一个彩蛋。有趣吧?你可以看看this.py(source:https://hg.python.org/cpython/file/c3896275c0f6/Lib/this.py)中的具体实现。

有趣的是,禅宗的代码是自相矛盾的(这可能是Python里唯一发生这种情况的地方)。爱不是真或假,爱就是爱这句话读起来有点讽刺,却不言自明。

3. 花括号的使用

如果你不喜欢在Python中使用空格来表示作用域,想使用C风格的花括号{},你试着导入:

from__future__ importbraces

然后你会得到:

File "some_file.py", line 1

from __future__ import braces

SyntaxError: not a chance

__future__模块通常用来提供Python未来版本的一些功能。这里“未来”对“花括号”做了小小的讽刺:想都别想!这是Python社区对这个问题的彩蛋。

4. “Hello world”程序可以有多简单?

够简单了吧:

>>> import __hello__

Hello World!

5. 来认识“亲切大叔”(Friendly Language Uncle For Life)

>>>from__future__ importbarry_as_FLUFL

>>> "Ruby"!= "Python"# there's no doubt about it

File"some_file.py", line 1

"Ruby"!= "Python"

^

SyntaxError: invalid syntax


>>> "Ruby"<> "Python"
True

欧了。

这个彩蛋与2009年4月1日发布的PEP-401有关(401,你懂得)。鉴于Python3.0里的不!=是一个糟糕的损耗程序员手指的存在,BDFL的并不存在的继任者FLUFL又将其改回去了。更多彩蛋见(source:https://www.python.org/dev/peps/pep-0401/)

译者注:BDFL(Benevolent Dictator For Life)直译为“仁慈的独裁者”,指Python的发明者Guido van Rossum在Python开发上享有监管权和决定权。2009年的愚人节,Guido宣布退休并任命Barry Warsaw为继任者,继任者的正式头衔是“亲切大叔(Friendly Language Uncle For Life,FLUFL)”,FLUFL立刻公布了一个PEP文档(Python编码规范文档),其中之一就是将不等号运算符!=重新规定为旧运算符<>。本文将其作为Python彩蛋。

6. 无穷大

Python中的拼写是有目的的。

>>> infinity = float('infinity')

>>> hash(infinity)

314159

>>> hash(float('-inf'))

-314159

在Python中,无穷大的hash是105×π。有趣的是, float(“-inf”)的hash在Python 3版本里是“-105×π”而在Python 2版本里是“-105×e”。


原文发布时间为:2018-04-23

本文作者:Satwik Kansal

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”。

相关文章
|
1天前
|
Python 缓存 开发者
Python中的装饰器:优雅而强大的代码增强工具
在Python编程中,装饰器是一种强大的工具,它允许开发者在不改变原有代码结构的情况下,增加额外的功能。本文将深入探讨Python中装饰器的概念、用法和实际应用,展示其在代码优化和增强方面的威力。
|
1天前
|
Python 设计模式 缓存
Python中的装饰器:提升代码可读性与可维护性
在Python编程中,装饰器是一种强大的工具,它可以提高代码的可读性和可维护性。本文将深入探讨装饰器的概念、用法以及实际应用场景,帮助读者更好地理解和利用Python中的装饰器。
|
1天前
|
Python 缓存
Python 中的装饰器:提升代码可读性与灵活性
Python 中的装饰器是一种强大的工具,它可以提高代码的可读性和灵活性。本文将深入探讨装饰器的概念、用法以及如何在实际项目中应用装饰器来简化代码、增加功能,以及解决常见的编程问题。
|
1天前
|
Python
通过f-string编写简洁高效的Python格式化输出代码
Python 3.6中引入的f-string是Python中最常用的特征之一,它可以让我们编写更干净、更高效和更易于维护的代码,我们今天就由浅入深来详细介绍使用它的一些技巧。
11 4
|
2天前
|
算法 程序员 开发工具
GitHub上新!14个Python项目详细教程(附完整代码)
Python作为程序员的宠儿,越来越得到人们的关注,使用Python进行应用程序开发的也越来越多。 今天给小伙伴们分享的这份项目教程完整代码已上传至GitHub,你可以选择跟着这份教程一段一段的手敲出来这几个项目,也可以直接从GitHub上copy下来。
|
3天前
|
并行计算 算法 编译器
如何优化Python代码以提高执行效率
如何优化Python代码以提高执行效率
10 1
|
5天前
|
Shell 开发工具 git
[oeasy]python019_ 如何在github仓库中进入目录_找到程序代码_找到代码
本文档介绍了如何在终端环境下使用Git克隆仓库后,通过`cd`、`pwd`和`ls`命令导航并找到下载的文件。首先,使用`ls`查看当前目录,然后通过`cd`逐层进入目标文件夹,最后到达包含游戏文件game.py的位置。文章还提到了如果`git clone`失败,可以直接进行下一节实验。
12 0
|
10天前
|
存储 缓存 算法
Python性能优化:让你的代码更快更流畅
本文介绍了优化 Python 代码性能的十二个技巧,包括使用内置数据类型和函数、避免不必要的循环和递归、使用局部变量、利用生成器节省内存、选择合适的数据结构、并行和并发处理、使用第三方库、缓存减少重复计算、代码剖析和性能分析、优化算法和数据结构以及减少 I/O 操作。通过这些方法,开发者可以编写出运行更快、效率更高的 Python 程序。
|
11天前
|
算法 程序员 开发工具
GitHub上新!14个Python项目详细教程(附完整代码)
Python作为程序员的宠儿,越来越得到人们的关注,使用Python进行应用程序开发的也越来越多。 今天给小伙伴们分享的这份项目教程完整代码已上传至GitHub,你可以选择跟着这份教程一段一段的手敲出来这几个项目,也可以直接从GitHub上copy下来。
|
13天前
|
开发工具 Python
【分享Python代码】图片转化为素描画
【分享Python代码】图片转化为素描画
30 2