pytricks-2-python每周小知识点

dream_it_possible: 千山踏飞雪,秋水共长天

0 前言

  • pytricks每周不定期不定量更新,一个或多个python小技巧或小知识
  • python3.8
  • 20201024 初稿

1 正文

1.1 python之歌(python之禅、python之父、python之美)

打开任意编译器,输入import this,然后 run(或者REPL界面回车);
然后你就可以看到传说中的python之歌了,也称为python之禅,又称为python之父,也有叫python之美的。
关于python之歌详情
在这里插入图片描述
中文版:

优美优于丑陋,
明瞭优于隐晦;
简单优于复杂,
复杂优于凌乱,
扁平优于嵌套,
稀疏优于稠密,
可读性很重要!
即使实用比纯粹更优,
特例亦不可违背原则。
错误绝不能悄悄忽略,
除非它明确需要如此。
面对不确定性,
拒绝妄加猜测。
任何问题应有一种,
且最好只有一种,
显而易见的解决方法。
尽管这方法一开始并非如此直观,
除非你是荷兰人。
做优于不做,
然而不假思索还不如不做。
很难解释的,必然是坏方法。
很好解释的,可能是好方法。
命名空间是个绝妙的主意,
我们应好好利用它。

1.2 python之歌的秘密

1.2.1 源码

this.py 在python的lib下面(Lib/this.py);pycharm中使用快捷方式点开即可。其和os等都是内置库,故可以直接import。

说到源码,不要谈之色变,畏惧如虎。python之歌的源码很简单
在这里插入图片描述
就是简单的两个变量(一个字符串、一个字典)+几个简单内置函数(chr、range、print)+ 两层简单循环 + 最后的print输出
是不是很简单呢。

1.2.2 深究源码

细心的同学肯定注意到了,源码的字符串和输出来的字符串是不一样的。
这就是python之歌一个隐藏的秘密啦–密码学的加解密(或者说加解密算法啦)。同样也没有那么高深,不要谈之色变,畏惧如虎。这里就只是最简单的rot-13加解密算法啦。
rot-13:就是把原文(26个字母)对应位移13个距离。
在这里插入图片描述
源码中的如下部分
在这里插入图片描述
就是在构建rot-13映射字典。
其中构建好了的字典d部分如下:
在这里插入图片描述

然后再通过
在这里插入图片描述
将密文输出明文啦。
而rot-13又是对称的,即加解密是一致的(可以理解为负负得正,补集的补集是自身,等等,一个意思)。
故我们把s替换成明文,输出的就是源码里面的密文啦。
在这里插入图片描述
怎么样,隐藏在python之歌背后的秘密,虽简单而有趣。
一些简单的python语法+一个简单的加解密算法

好的,今天的分享就到这来啦!这里是akufire,让我们一起fight!