Python里隐藏的“禅”_python

在 python的lib目录里有一个:this.py,它其实是隐藏着一首诗,源码如下:

复制代码 代码如下:

s = """Gur Mra bs Clguba, ol Gvz Crgref

Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyrk.
Pbzcyrk vf orggre guna pbzcyvpngrq.
Syng vf orggre guna arfgrq.
Fcnefr vf orggre guna qrafr.
Ernqnovyvgl pbhagf.
Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.
Nygubhtu cenpgvpnyvgl orngf chevgl.
Reebef fubhyq arire cnff fvyragyl.
Hayrff rkcyvpvgyl fvyraprq.
Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.
Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.
Abj vf orggre guna arire.
Nygubhtu arire vf bsgra orggre guna *evtug* abj.
Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.
Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""

d = {}
for c in (65, 97):
    for i in range(26):
        d[chr(i+c)] = chr((i+13) % 26 + c)

print "".join([d.get(c, c) for c in s])

输出结果为:(翻译自IT柏拉图)
 
复制代码 代码如下:

The Zen of Python, by Tim Peters
《Python 的禅》 by 提姆·彼特

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!
命名空间是一个让人尖呼的伟大构想 —— 我们应该在那方面做得更多!

作者果然是很有“湿”意呀!!

时间: 2024-09-24 16:03:39

Python里隐藏的“禅”_python的相关文章

Python里disconnect UDP套接字的方法_python

UDP 套接字是可以使用 connect 系统调用连接到指定的地址的.从此以后,这个套接字只会接收来自这个地址的数据,而且可以使用 send 系统调用直接发数据而不用指定地址.可以再次调用 connect 来连接到别的地方.但是在 Python 里,一旦调用 connect 之后,就再也回不到最初的能够接收从任意地址来的数据的状态了! 这是 Python 的 API 限制,没办法给 connect 方法传递到 AF_UNSPEC 地址簇(在 C 代码里写死了的).C 里边就可以做到的(代码来自这

盘点提高 Python 代码效率的方法_python

第一招:蛇打七寸:定位瓶颈 首先,第一步是定位瓶颈.举个简单的栗子,一个函数可以从1秒优化到到0.9秒,另一个函数可以从1分钟优化到30秒,如果要花的代价相同,而且时间限制只能搞定一个,搞哪个?根据短板原理,当然选第二个啦. 一个有经验的程序员在这里一定会迟疑一下,等等?函数?这么说,还要考虑调用次数?如果第一个函数在整个程序中需要被调用100000次,第二个函数在整个程序中被调用1次,这个就不一定了.举这个栗子,是想说明,程序的瓶颈有的时候不一定一眼能看出来.还是上面那个选择,程序员的你应该有

Python的面向对象思想分析_python

本文实例讲述了Python的面向对象思想.分享给大家供大家参考.具体分析如下: 面向对象的基本思想是封装,继承,多态. 首先是继承: 定义一个类: 复制代码 代码如下: class Bird(object):      have_feather = True      way_of_reproduction  = 'egg' 调用这个类: 复制代码 代码如下: summer = Bird()  print summer.way_of_reproduction 与Java不同是,Python是不需

python新手求助-Python新手一个,对于Python里的中文编码有疑问

问题描述 Python新手一个,对于Python里的中文编码有疑问 电脑win7,安装Python2.7.8..py文件中u'中文'格式可以正常输出,但是在Editplus中调试时出错,前面也指定了UTF-8.请问具体原因在哪里,求解. 解决方案 http://blog.chinaunix.net/uid-25063573-id-3033365.html 解决方案二: 需要看你编辑器编码格式.文件编码格式 输出控制台编码格式.不然就会有乱码 解决方案三: 报错详细内容呢

零基础写python爬虫之神器正则表达式_python

接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. 一. 正则表达式基础 1.1.概念介绍 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分. 其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同. 它拥有自己独特的语法以及一个独立的处理引擎,在提供了正则表达式的语言里,正则表达式的语法都是一样的. 下

Python实现基本线性数据结构_python

数组 数组的设计 数组设计之初是在形式上依赖内存分配而成的,所以必须在使用前预先请求空间.这使得数组有以下特性:      1.请求空间以后大小固定,不能再改变(数据溢出问题):      2.在内存中有空间连续性的表现,中间不会存在其他程序需要调用的数据,为此数组的专用内存空间:      3.在旧式编程语言中(如有中阶语言之称的C),程序不会对数组的操作做下界判断,也就有潜在的越界操作的风险(比如会把数据写在运行中程序需要调用的核心部分的内存上). 因为简单数组强烈倚赖电脑硬件之内存,所以不

跟老齐学Python之不要红头文件(1)_python

这两天身体不给力,拖欠了每天发讲座的约定,看官见谅. 红头文件,是某国特别色的东西,在python里不需要,python里要处理的是计算机中的文件,包括文本的.图片的.音频的.视频的等等,还有不少没见过的扩展名的,在linux中,不是所有的东西都被保存到文件中吗?文件,在python中,是一种对象,就如同已经学习过的字符串.数字等一样. 先要在交互模式下查看一下文件都有哪些属性: >>> dir(file) ['__class__', '__delattr__', '__doc__',

Python基本数据类型详细介绍_python

1.空(None)表示该值是一个空对象,空值是Python里一个特殊的值,用None表示.None不能理解为0,因为0是有意义的,而None是一个特殊的空值.2.布尔类型(Boolean)在Python中,None.任何数值类型中的0.空字符串"".空元组().空列表[].空字典{}都被当作False,还有自定义类型,如果实现了__nonzero__()或__len__()方法且方法返回0或False,则其实例也被当作False,其他对象均为True布尔值和布尔代数的表示完全一致,一个

azure-大家好!! python 里 怎么批量删除虚拟机啊??? 求解哇!!!!!

问题描述 大家好!! python 里 怎么批量删除虚拟机啊??? 求解哇!!!!! 大家好!! python 里 怎么批量删除虚拟机啊??? 求解哇!!!!! 解决方案 首先需要知道删除的API,一般是web API,那么python可以调用 解决方案二: 您好, 当前Python没有直接的API去批量删除VM,但可以单个删除: from azure import * from azure.servicemanagement import * sms = ServiceManagementSe