Python补充06 Python之道

Python补充06 Python之道

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

 

Python有一个彩蛋,用下面语句调出:

import this

该彩蛋的文档记录于PEP 20。

语句执行之后,终端将显示一首"The Zen of Python"的诗,即“Python之道”。这首诗总结了Python的风格,可以指导Python程序员的编程。Python程序员会自豪宣称自己"Pythonic"。Pythonic的一个基本标准,是写出合乎“Python之道”的代码

 

下面是“Python之道”的全文,以及我附加的翻译。

The Zen of Python, by Tim Peters

Python之道

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.

尽管那个方法可能并不明显,除非你是荷兰人。(Python的作者Guido是荷兰人,这是在致敬)

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之道"强调美观、简单、可读和实用,拒绝复杂或模糊。

 

历史

Tim Peters于June 4, 1999的Python邮件列表,以"The Python Way"为标题,发表了“Python之道”,得到许多Python程序员的认同。另一方面,2001年的International Python Conference #10 (IPC10, IPC是PyCon的前身)会议,主办方希望在文化衫上印标语,而这一标语要能代表Python文化。到会的Python程序员们创作了500多条。组织者选了"import this"。后来,Python的作者Guido增加了this.py模块,让这个语句可以在解释器中执行,打印“Python之道”。

Python社区很幽默。

 

此外,PyCon是Python爱好者的集会,可以去给别人展示自己的Python项目,或者听讲座。2012年的PyCon是在北京和上海同时举行。

 

参考文章

 

转载于:https://www.cnblogs.com/ching2009/p/5074826.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

传送指令 MOV

MOV dest,src ;dest <-- srcMOV指令把一个字节或字从源地址src送入目的地址destsrc源操作数可以是立即数,寄存器,段寄存器,存储单元MOV AX,10 ;MOV 寄存器,数据 eg-1MOV AX,BX ; MOV 寄存器,寄存器 eg-2MOV AX,[0] ;MOV 寄存器,内存单元 eg-3MOV [0],AX ;MOV 内存单元…

四舍五入函数

四舍五入函数 Math.Round()posted on 2015-12-25 15:58 低音炮可怕男子 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/DreamTime/p/5076201.html

串传送指令MOVSB MOVSW

MOVSB(move string byte)ES:DI <-- DS:SI 把ds:si所指地址内存单元中的数据送到es:di所指向的内存单元中,源地址数据保持不变,si和di指向下一个要传送的数据传送的次数(字符串长度)保存在CX寄存器中并用cld/std说明si和di是递增还是递减,最后用REP指令重复执行MOVSB直到cx0终…

file_get_content和curl的性能比较

今天在获取微信一张二维码图片时发现使用php中的file_get_content方式和curl方式竟然相差了50倍左右&#xff0c;直接晕倒&#xff01;&#xff01;&#xff01; 转载于:https://www.cnblogs.com/jenqz/p/5077996.html

分段机制

根据编程需要可将地址连续的内存单元看作是一个段段地址*16来定位段的起始地址偏移地址来定位这个段中的各个单元一个段的大小最大为64K,因为偏移地址是16位,16位的寻址能力为64KDS:[BX] 0C8C:0000; 段地址为0C8CH; 偏移地址0H&#xff5e;FFFFH 大小为64K0C8C:FFFF一般汇编源…

java定时器的使用(Timer)

java定时器的使用&#xff08;Timer&#xff09;1、在应用开发中&#xff0c;常常须要一些周期性的操作&#xff0c;比方每5分钟运行某一操作等。对于这种操作最方便、高效的实现方式就是使用java.util.Timer工具类。private java.util.Timer timer;timer new Timer(true);tim…

nginx 配置优化详解

# nginx不同于apache服务器&#xff0c;当进行了大量优化设置后会魔术般的明显性能提升效果 # nginx在安装完成后&#xff0c;大部分参数就已经是最优化了&#xff0c;我们需要管理的东西并不多#user nobody;#阻塞和非阻塞网络模型&#xff1a; #同步阻塞模型&#xff0c;一请…

标号 变量

标号&#xff1a;标记了指令,数据,段的起始地址data segment str db ‘hello’data endscode segment start: jmp begin begin: mov ax,datacode ends end startstr标号(数据标号通常又叫变量),表示内存单元地址和长度start,begin标号表示了指令mov ax,data的地址data ,code标号…

ASP.NET知识集

ASP.NET知识集 编辑删除转载2015-06-23 16:31:55标签&#xff1a;it//删除指定行数据时&#xff0c;弹出询问对话框 ((LinkButton)(e.Row.Cell[7].Controls[0]).Attributes.Add("onclick","return confirm(是否删除当前数据&#xff01;)"); //注登录&…

操作符offset和seg

offset获得标号的偏移地址seg获得标号的段地址mov ax,offset beginjmp axmov ds,axbegin: add ax,bx-u0CA0:0000 B80700 MOV AX,0007 ;编译器已经把标号变成add ax,bx处的地址了0CA0:0003 FFE0 JMP AX0CA0:0005 8ED8 MOV DS,AX0CA0:0007 …

数制学习笔记

数制的基本概念 一.数码 数制中表示基本数值大小的不同数字符号。例如&#xff0c;十进制有10个数码&#xff1a;0、1、2、3、4、5、6、7、8、9。二.基数 数制所使用数码的个数。例如&#xff0c;二进制的基数为2&#xff1b;十进制的基数为10。三.位权 数制中某一位上的1所表示…

数据结构问题集锦 - Find Median from Data Stream

临近期末&#xff0c;鸭梨山大啊&#xff0c;就不多说了。这道题的要求就是&#xff0c;给定一串输入&#xff0c;在中间任何一个时候&#xff0c;都能够求出添加到一半的序列的中位数。 大概考虑一下&#xff0c;如果用动态数组来进行元素插入的话&#xff0c;尽管这样查询中位…

所处理的数据在什么地方 有多长 如何定义 如何寻找

处理的数据在什么地方&#xff1a; 立即数(idata)1,3,10,3F 寄存器AX,AL,BX 内存单元,可用寻址方式给出DS:[idata],ds:[0]处理的数据有多长: MOV AX,1 ;字操作 MOV AL,1 ;字节操作 MOV BYTE PTR DS:[0],1 ;字节操作 MOV WORD PTR DS:[0],1 ;字操作 PUSH/POP 进行的是字操作 数据…

invoke伪指令

通过反汇编helloworld对话框来看invoke伪指令 invoke是调用WinAPI的伪指令 把上一个helloworld对话框编译并连接成hello.exe然后用OD打开得到下图 前文说过ML.EXE编译invoke时会把invoke的参数PUSH入栈和一个CALL,在代码段中只有两个invoke指令 invoke MessageBox,NULL,offset …

Azure Virtual Network, 虚拟网络

云上的虚拟网络把不同用户完全的隔离开来。同时可以自己对虚拟网络进行定制&#xff0c;设置各种安全访问策略&#xff0c;配置load balancer等等。 在新的基于Azure Resource Manager (ARM)的部署方式中&#xff0c;虚拟网络已经是默认设置了。也就是说在通过ARM部署的VM&…

百度地图API的第一次接触——自定义控件

1.定义一个控件类&#xff0c;即function function ZoomControl(){ // 设置默认停靠位置和偏移量 this.defaultAnchor BMAP_ANCHOR_TOP_LEFT; this.defaultOffset new BMap.Size(10, 10); } 2.通过JavaScript的prototype属性继承于BMap.Control ZoomControl.pr…

include语句

程序用到MessageBox和ExitProcess函数它们分别在user32..dll和Kernel32.dll中 那么就必须在程序中使用include语句包含这两个库文件,此时程序中可以使用user32..dll和Kernel32.dll中所有的函数 include相当于java中import导入包语句

Spring MVC Controller与jquery ajax请求处理json

在用 spring mvc 写应用的时候发现jquery传递的【json数组对象】参数后台接收不到&#xff0c;多订单的处理&#xff0c;ajax请求&#xff1a; var cmd {orders:[{"storeId":"0a1", "address":"西斗门路2号", "goods":[{&…

课堂例子解答

Editbox 等价类划分测试用例例子 要求输入1到6个英文字符或数字&#xff0c;按OK结束并输入。 其中有效等价类包括:1.长度1-6&#xff0c;2.a-z,A-Z,0-9 无效等价类包括&#xff1a;1.长度0或大于6&#xff0c;2.输入字母数字以外的字符&#xff0c;控制字符&#xff0c;标点符…

从代码里提取的测试需求

服务器端的测试&#xff0c;软件需求基本等于产品说明书&#xff0c;只有大概&#xff0c;没有详尽。再需求不充分的情况下&#xff0c;我们可以从哪些方面来挖掘测试需求呢&#xff1f; 现已知需求&#xff1a;服务器支持对客户端的版本升级&#xff0c;存在两种升级规则&…