好玩的Python彩蛋

Python作为一门严谨的编程语言,也充满了各种娱乐、恶搞、实用的彩蛋,程序员真的是一群创意无极限的家伙。笔者总结了Python中几个比较有趣的彩蛋。

1. Hello World

相传古时候有个退休的程序员,在家闲来无事,决定修习书法之道。第一日备好笔墨纸砚,便挥毫落纸写下一行大字:“hello, world”。hello world 是程序员学习一门新的编程语言的开始,而Python干脆把它嵌入到了内置模块中。

>>> import __hello__
Hello World...

到了python3,输出结果稍微有改动,把...替换成了!

>>> import __hello__
Hello World!

2. Python之禅

import this 中隐藏了一首《Python之禅》的诗,它是Python中的『八荣八耻』,作者是 Tim Peters ,每个有追求的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!

参考翻译:

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 way not be obvious at first unless you’re Dutch.
虽然一开始这种方法并不是显而易见的,但谁叫你不是Python之父呢。

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!
命名空间是个绝妙的想法,让我们多多地使用它们吧!

3. 反地心引力

import antigravity是一个搞笑的彩蛋,它直接跳转到一副漫画网页http://xkcd.com/353/,漫画非常有意思,Cueball漂浮在天空中,一个朋友好奇的问他怎么飞起来的。0?wx_fmt=png

Friend:哇!你在飞,怎么做到的?print "Hello World!"import antigravity

4. 大括号替换缩进

Python与其他语言在语法上最大的不同就是代码块的结束方式,Python代码块简洁许多,一个类C语言的语法:

if (x > y) {
    x = 1;
    y = 2;
}

在 Python 中等价的语句:

if x > y :
    x = 1
    y =2

Python的目标之一就是让程序员少打些字,让生活多些乐趣。Python不需要像类C语言一样输入 begin/endthen/endif 或者 {} 来结束代码块,Python使用缩进来结束代码块。而braces库算得上是Python中最恶搞的一个彩蛋了,如果你是从类C语言转过来的程序员,估计你是一时半会儿适应不了Python的缩进,那么是否有其他办法呢?braces模块就是专门为C程序员准备的兼容方案。

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

哈哈,被骗了吧,窃以为导入braces就可以使用大括号来结束代码块,Python告诉你的答案是:没门儿!

5. HTTPServer

如果想让身边的同事临时访问你电脑中的文件目录,通常的做法是搭一个共享目录出来供大家访问,不过你要是安装了Python,那么一切都变得简单很多了,只需要打开命令行窗口,切换到指定目录,执行:

python -m SimpleHTTPServer  # python2
python -m http.server  # python3

这是 Python 内置的一个简单 http server,方便自己、他人用浏览器来访问你的文件目录

6. 没有了

关注公众号获取最新文章

0?wx_fmt=jpeg

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值