昨天Paradoxical乱翻python安装目录的时候,看到了一个叫this.py的文件。在好奇心的驱使下打开了它。
emmmm……完全看不懂,只能请教一下小哥哥了。
我:小哥哥,你知不知道那个this.py是什么吗?
惨绿青年:知道啊,就是python之禅。
我:禅是什么鸭?
惨绿青年:真懒……“禅,是一种基于“静”的行为,源于人类本能,经过古代先民开发,形成各种系统的修行方法,并存在于各种教派。先秦时期就有关于此种行为的记载,但是未有固定称呼。直至印度词汇jana传入,汉语音译为“禅那”,后世便以“禅”字称谓此类行为”——百度百科。python之禅就是指python的修行方法。你试下运行这个文件。
于是Paradoxical就运行了这个文件看看。
我:小哥哥,你给我翻译翻译中文是什么呗。
惨绿青年:唉,真是服了你了。给你上网找一个吧。
我:有一点点懂了,好像好厉害的样子。那这段文字是怎么出来的鸭?
惨绿青年:这就要说到ascii(美国信息交换标准代码)了。如下图所示,不同的符号对应不同的ascii,大写字母A到Z的10进制ascii是65到90,小写字母a到z的10进制ascii是97到122。chr()输入10进制数字参数即可获取对应的字符。
惨绿青年:所以第一层循环循环两次分别把65和97赋值给c,第二层循环循环26次,就是遍历26个大写字母和26个小写字母。
惨绿青年:第二层循环里的语句就是把映射关系存入字典d。(i + 13)%26就是偏移量,加上第一层循环中的c变量就能通过chr()取得对应的字母。最后遍历s里的字符从字典d取出对应的值后拼接成字符串,就成了你最终看到的结果。
我:为什么i要加13鸭?
惨绿青年:因为他设计的时候就是把ascii码偏移了13位啊!
我:哈~原来是这样鸭~