Python计算题二级题目

img

img


没太看懂这是怎么运算的呀?

没看懂不怪你,代码写的有点惨

1. 原理

A --> D 位置向后移动3个,怎么实现:

  1. A转为ASCII的数字,就是97
  2. 97+3 (向后移动3位),就是100
  3. 100根据ASCII转为字符,就是 D
  4. 考虑特殊情况,比如Z+3超出字母表了,就减去26,回到字母表开头,就是C

关于什么是ASCII,自行百度

很好理解吧。
1.p是单个字母,而intxt是字符串,所以用for语句逐个加密。
2.ord将字母转化为编码数字,又因为a-z和A-Z编码不连续,所以要if-elif(字母与字母可以直接比较大小,但不能计算。)。
3.加密过程是白给的,%26那段代码主要是为了防止xyz+3后溢出字母表,纯粹是个数学问题。
4.用chr再将编码转化为字母。
5.不在字母表内的不加密。